본문 바로가기

ETC

네트워크 면접 정리 With 모두의 네트워크. 6장 전송 계층 : 신뢰할 수 있는 데이터 전송하기

반응형
  • 5장 복습
    • 서로 다른 네트워크 간에 통신하려면 라우터가 필요하다
    • 라우터(포트)에는 IP(기본 게이트웨이)가 할당된다
      • ISP의 라우터에는 공용 IP
      • 랜 네트워크의 라우터(포트)에는 사설 IP의 기본 게이트웨이
        • 기기는 어디로 보낼지 모르기에 일단 라우터로 보낸다
    • IP 프로토콜의 IP 헤더에는 송신 IP 주소 수신와 IP 주소가 있다
    • IP 주소는 네트워크 ID [, 서브넷 ID], 호스트 ID로 나눌 수 있다.
    • 대규모, 중규모, 소규모 네트워크를 네트워크 ID를 통해 클래스로 구분하며, 서브넷 마스크로 더욱 쪼개 사용할 수 있다.
    • IP에는 컴퓨터에 할당할 수 없는 브로드캐스트 주소와, 네트워크 주소가 있음을 유의한다.
    • 라우터는 L3 스위치라고도 하는데 기능상으론 차이 없음

전송 계층의 역할

  • 물리계층, 데이터 링크 계층, 네트워크 계층 3계층이 있으면 목적지에 데이터를 보낼 수 있음
    • 손상되거나 유실되는 데이터를 관리해주지 않음
    • 목적지에 신뢰할 수 있는 데이터를 보낼 수 있는 프로토콜 필요

전송 계층의 역할

전송 계층의 기능

  • 데이터 오류 점검
    • 오류 발생 시 데이터 재전송
    • 데이터 목적지 애플리케이션 식별

전송 대상 애플리케이션은 포트를 통해 식별한다

연결형 통신과 비연결형 통신

  • 전송 계층의 특징
    • 신뢰성/정확성
      • 데이터를 목적지에 문제없이 전달
      • 상대방을 여러번 확인해야 함
      • 연결형 통신
      • TCP(Transmission Control Protocol)
    • 효율성
      • 데이터를 빠르고 효율적으로 전달
      • 상대방을 확인하지 않음
      • 비연결형 통신
      • UDP(User Data Diagram)

연결형은 신뢰성/정확성 우선, 비연결형은 효율성 우선이다

 

TCP의 구조

계층별로 데이터 전달시 헤더를 붙이거나/분리하는 것을 캡슐화/역캡슐화라 한다

  • 전송 계층에서 TCP로 전송 시 붙이는 헤더를 TCP 헤더라 하며 TCP 헤더가 붙은 데이터를 세그먼트라 한다
    • IP 패킷 (3계층) :  데이터를 서로 다른 LAN 간에 데이터를 주고 받을 때 사용되는 단위
    • MAC 프레임 (2계층) : 프레임은 데이터를 담는 컨테이너로 동일 네트워크 상의 정보만 가지고 있다. 
    • TCP 세그먼트 (4계층) : 실질적인 전송 데이터 조각의미(Segments). 상위 계층(세션,표현,응용)의 헤더+데이터는 Data가 된다

  • TCP 는 연결 지항형 프로토콜
    • 연결(connection)이라는 가상의 독점 통신로를 확보해야 함

TCP 헤더의 코드 비트(107~112) 6비트는 연결 제어 정보를 담고 있다.

  • 연결을 위해선 코드비트의 SYN(연결 요청), ACK(확인 응답)이 필요함

 

3-way 핸드셰이크

syn, ack를 사용하여 연결을 확립. 데이터 전송 전 패킷을 위와 같이 세 번 교환
연결 확립 요청과 응답

  • 위와 같이 연결 확립 전에 패킷 요청을 세 번 교환하는 것을 3-way 핸드셰이크라고 한다.

FIN과 ACK 이용한 연결 종료

  • 연결을 종료할 시는 위와 같이 FIN과 ACK가 1로 활성화된다.

 

일련번호 확인과 응답 번호의 구조

일련번호와 확인 응답 번호란?

  • 3-way 핸드셰이크가 끝나고 실제 데이터를 보내거나 받을 때 상대방이 받을 때는 TCP 헤더의 일련번호와 확인 응답 번호를 사용한다.

  • 일련번호는 송신 측에서 수신 측에 몇번째 데이터인지를 알려주는 역할
  • 확인번호는 수신 측이 몇번 째 데이터를 수신했는지 송신 측에 알려줌

일련번호, 확인 응답번호는 3-way handshake시 초기화됨. 두 번호를 통해 재전송 제어

  • 일련번호와 확인 응답 번호를 체크하고 오류 발생 시 잠시 대기 후 재전송함
    • 데이터를 재전송 하는 것을 재전송 제어라고 한다.

윈도우 크기란?

  • 매번 확인 응답을 기다리는 대신 세그먼트를 연속해서 보내고 난 다음에 확인 응답을 체크하면 효율이 높아짐
  • 수신 컴퓨터의 세그먼트가 쌓이는 장소 : buffer
    • buffer overflow가 발생할 수 있음
    • 해당 버퍼의 한계 크기가 window size

윈도우 크기는 수신측 버퍼 크기

  • 윈도우 크기는 즉 얼마나 많은 용량의 데이터를 저장해둘 수 있는가를 의미한다.

수신 측이 SYN+ACK 시에 윈도우 크기를 보낸다

  • 세그먼트 하나 보내고 확인하기 vs 연속으로 보내고 확인하기

보내고 응답 대기는 비효율적임
확인 응답 없이도 데이터를 계속 보낼 수 있음

포트 번호의 구조

  • 데이터 목적지 애플리케이션의 식별을 위해 필요함

0~1023 포트는 well-known ports, 1024는 사용하지 않고 1025번 이상이 클라이언트의 송신 포트로 사용
잘 알려진 포트

  • 포트 번호가 없으면 컴퓨터에 데이터가 도착하더라도 애플리케이션에 도착할 수 없음
    • 웹 브라우저에는 임의의 포트가 자동으로 할당됨 (1025번 부터)
    • 브라우저에서 해당 도메인에 포트 안붙이고 보내면 80혹은 443으로 디폴트로 보냄
      • 해당 서버의 해당 포트에서 listening하는 애플리케이션이 응답함

UDP의 구조

  • UDP는 비연결성
    • 응답을 체크하지 않는다
    • 신뢰성, 정확성 X
    • 효율성
      • 스트리밍
    • TCP에 비해 헤더 정보가 별로 없다.

위와 같이 UDP 헤더가 붙은 데이터를 UDP 데이터그램이라 한다
TCP는 응답 확인이 필요하여 브로드캐스트에 적합하지 않다.

정리

반응형