-
TCP와 IP data format학교 수업/네트워크 2020. 6. 22. 18:00
이전 포스팅에서 data format에 대해 설명하지 못했어서 따로 설명한다.
IP : Network layer에 존재하는 프로토콜
IP 통신단위 : Packet (Datagram이라고 명칭)
Datagram format
Header : routing과 delivery에 필요한 정보를 포함한다.
구조
① Ver: IP버전을 기록, IPv4인지 IPv6인지
② HLEN: header의 길이저장.
기본 Header 크기 20bytes + option있을 경우 -> header크기를 정확히 모르므로
데이터 시작부분을 알기 위해 저장.
전체길이/4의 몫을 저장한다.
③ Service type
④ Total length: Header 뿐만 아니라 데이터를 포함한 IP패킷 즉 Datagram의 전체 길이를 바이트단위로 표시
⑤ Identification : 큰 IP Packet은 여러개의 작은 조각으로 조각화되기도 하는데,
각 조각이 동일한 Datagram에 속하는지 확인하기 위한 번호, 동일하면 같은 일련 번호를 공유
⑥ Flag : 분열의 특성을 나타내는 플래그,
처음 1bit는 항상 0으로 설정, 나머지 2비트는
A. May Fragment : IP 라우터에 의해 분열되는 여부를 나타낸다. 플래그 0 - 분열 가능 1 - 분열 방지
B. More Fragments : 원래 데이터의 분열된 조각이 더 있는지 여부 판단.
플래그 0 - 마지막 조각, 기본값 1- 조각이 더 있음
⑦ Fragmentation offset : 조각나기 전 원래 Datagram의 위치
=> 5,6,7번은 IP 단편화와 재배열에 관련된 필드
⑧ TTL, Time to Live: IP Packet 수명, 1부터 255사이의 값으로 지정됨
라우터들이 패킷을 전달할때마다 이 값을 하나씩 감소
⑨ Protocol : 어떤 상위계층 프로토콜이 데이터 내에 포함되었는 가를 보여줌
예) TCP -> 6, UDP -> 17 , ...
⑩ Header Checksum : 헤더에 대한 오류 검출
⑪ Source IP Address: 송신처 IP주소
⑫ Destination IP Address: 목적지 IP주소
TCP : Transport layer에 존재하는 프로토콜
서버와 클라이언트간 데이터를 신뢰성 있게 전달하기 위해 만들어진 프로토콜
TCP 통신 단위 : Segment
Segment format
Header 구조
① Source port: 데이터를 보내는 호스트의 TCP 포트
② Destination port: 데이터를 받는 호스트의 TCP 포트
③ Sequence Number: TCP 세그먼트에 있는 첫번째 바이트에 대한 순번
④ Acknowledgement: 바이트에 대한 순번, 데이터를 전달받은 쪽이 받기를 원하는 number
⑤ HLEN: header의 길이저장.
기본 Header 크기 20bytes + option있을 경우 -> header크기를 정확히 모르므로
데이터 시작부분을 알기 위해 저장.
전체길이/4의 몫을 저장한다.
⑥ Reserved: 예비 공간
⑦ Control field: 각 1bit씩 존재하며 flag처럼 사용한다. packet받으면 여기 먼저 확인한다.
A. ACK: Acknowledgment is valid (데이터 전달받았다는 것)
B. SYN: 연결 요청 packet
C. FIN: 연결 종료 요청 packet
⑧ Window size: TCP 세그먼트를 보내는 호스트의 현재 TCP 버퍼 크기
⑨ TCP Checksum: TCP 데이터와 TCP 헤더의 error 유무확인(다른 계층 checksum은 헤더에러만)
⑩ Option:
MSS(Maximum segment size)
segment에서 header를 뺀 data영역 (payload) size로 애플리케이션 계층에서 한번에 최대로 보낼 수 있는
데이터의 사이즈를 의미한다.
A. 초기 set-up과정에서 SYN을 보낼 때 받고 싶은 size(MSS)를 상대방에게 전달하고
이는 set-up이후에 바꿀 수 없다.
'학교 수업 > 네트워크' 카테고리의 다른 글
TCP/IP 4계층? (0) 2020.04.30 OSI 7계층? (0) 2020.04.29 네크워크란? (0) 2020.04.29