본문 바로가기
Computer Science/컴퓨터 네트워크

컴퓨터 네트워크: Segment

by 청량리 물냉면 2021. 9. 24.
반응형

TCP: Transmission Control Protocol

 

3. Segment

 

TCP  segment format

 

TCP의 헤더 크기는 기본 20byte ~ 60byte이다.

헤더의 크기가 유동적이기 때문에 헤더 안에 어디까지가 헤더이고 어디부터 data인지 표시를 해주어야 한다. 즉, 헤더의 길이를 나타내 주어야 한다.

 

HLEN

  • 4bits 
  • 헤더의 길이를 나타낸다. 
  • 4bits로는 1111(2) 즉, 10진수로 15까지 표현할 수 있는데, 헤더의 길이는 최대 60byte까지 나타날 수 있기 때문에 이진수로 60을 나타내려면 111100(2) 총 6bits가 필요하다. 따라서 4bits로 60을 나타내기 위해 해당 수에 ÷4를 한다. 

ex1. HLEN = 60(10) = 111100(2), 

      111100(2) ÷ 4 = 15(10) = 1111 ☞ 15로 60을 표현할 수 있다. 

ex2. HLEN = 20(10) = 10100(2),

      10100(2) ÷ 4 = 5(10) = 0101 ☞ 5로 20을 표현할 수 있다. 

따라서 헤더의 길이가 20바이트라면 ÷4를 해서 5를 보내고, 60바이트라면 ÷4를 해서 15를 보낸다.

받는 쪽에서는 ×4를 해서 헤더의 길이를 인식한다. 

 

Checksum

  • 16bits
  • 데이터의 오류 체크
  • 헤더의 모든 내용 16bits씩 끊어와서 다 더함

 

Control field

  • 각 필드는 각각 1bit.
  • ACK: 1-번호를 보내니 반드시 보라고 상대에게 알려줌 / 0-상대는 헤더의 acknowledgment number 필드(16bits)에 쓰인 데이터를 쓰레기 취급함 
  • SYN: 연결 요청 패킷
  • FIN: 종료 요청 패킷

 

Pseudoheader added to the TCP segment

Pseudoheader

  • IP헤더로부터 Source IP주소, destination IP주소, 프로토콜 종류를 가져오고, TCP 헤더로부터 TCP 길이를 가져온다.
  • 확실한 체크 위해 해당 정보를 붙여서 checksum을 구한다. 만약 checksum을 통해 비트오류를 발견한다면 해당 패킷을 통째로 버린다.(어떤 비트가 오류인지 모름)
  • 전송 시에는 슈도헤더를 떼고 헤더만 보냄.

 

 

Example of checksum calculation at the sender

  • 32bits IP헤더의 데이터를 16bits씩 끊어와서 모두 더한 뒤에 보수를 취한 뒤 checksum field에 저장.
  • UDP의 checksum은 선택이지만 TCP의 checksum은 필수이다.

 

 

Encapsulation(캡슐화)

상위→하위로 가면서 포장에 싸이는 것

  • payload: 헤더 뗀 데이터 부분
  • IP payload: Datagram의 payload
  • Data-link lager payload: frame의 payload

 

 

 

 


자료 출처:

  • TCP/IP Protocol Suite 4th Edition Slide
    (Behrouz A. Forouzan 저, McGraw-Hill, 2010)
반응형