반응형
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)
반응형
'Computer Science > 컴퓨터 네트워크' 카테고리의 다른 글
컴퓨터 네트워크: Windows in TCP (0) | 2021.10.01 |
---|---|
컴퓨터 네트워크: State transition diagram (0) | 2021.10.01 |
컴퓨터 네트워크: A TCP Connection (0) | 2021.09.24 |
컴퓨터 네트워크: TCP Services, TCP Features (0) | 2021.09.09 |
컴퓨터 네트워크: Addressing (0) | 2021.09.09 |
컴퓨터 네트워크: OSI 7-Layer Model (OSI 7 계층 모델) (0) | 2021.09.02 |