네트워크교육 4일차(2022.01.06) - 정리
IP 헤더 내부내용
IP 헤더
Version : IPv4 or IPv6를 구별하는 정보
IHL(Ip Header Length) : 헤더의 길이 (옵션이 있으면 >=5 , 없으면 4 (20Byte) )
Protocol : 상위 프로토콜에 대한 정보들
Total Length : 상위 프로토콜에서 내려온 데이터의 총 길이
Identification : 인식번호, IP패킷을 구분하기 위해 부여하는 번호로 단편화 패킷을 조립할 때 이용 ( 0x298a 10634.. 등)
Fragment offset : 상위에서 내려온 분할된 데이터의 시작 번호
Time to Live(TTL) : 경유할 수 있는 최대 라우터의 수. TTL이 없으면 라우터 내에서 루핑이 일어나 루핑방지용으로 사용된다.
Header Checksum : 패킷의 헤더에 손상을 검출하기 위한 필드, 헤더부분만 계산한다.
Source Addr : 발신자 주소
Destination Addr : 수신자(목적지) 주소
---------------------------------------------------------------------------------------------------------------------
Ping data(32Byte) + ICMP 8Byte + IP 20Byte <= 1500Byte (Maximum Transmission Unit)
ex) 단편화된 data + IP <= 1500
--------------- -----
1480Byte 20Byte
옆자리에 3000Byte 데이터를 1번 보냈을 때의 단편화
Data 3000Byte + ICMP 8Byte = 3008Byte
IHL Total Length Identification IP flag M/F Offset
1) 5(20Byte) 1500Byte 36808 1 0 (0~1479)
2) 5(20Byte) 1500Byte 36808 1 1480(1480~2959)
3) 5(20Byte) 68Byte 36808 0 2960(2961~3007)
ICMP(8Byte)
TCP와 UDP
TCP(안전) : 신뢰할 수 없는 공용망에서도 정보유실 없는 통신을 보장하기위해 세션을 안전하게 연결하고 데이터를 분할하고 분할된 패킷이 잘 전송되었는지 확인하는 기능을 가지고 있다.
패킷에 번호를 부여해서 보내고 잘 전송되었는가에 대해 응답을 받는다. 응답이 오지 않을 때, 패킷을 재 전송할수도 있고, 재응답 요청을 할 수도 있다.
3-way handshaking : TCP에서 유실없는 안전한 통신을 위해 통신 시작 전, 사전 연결작업(SYN)을 진행하고 3번의 패킷을 주고 받으면서 통신을 서로 준비하는 과정.
서버에서도 3번째 ACK 메시지가 도착해야 세션확립상태(ESTABLISHED)로 변경된다.
SYN : 서버와 클라이언트의 통신을 위한 정보를 동기화(인사)
( IP:port , 시퀀스넘버 , buffer size(윈도 사이즈) , MSS등..)
MSS(Maximum Segment Size)는 헤더에 존재하지 않고 옵션에 존재한다.
UDP(신속) : 데이터 전송의 정확성을 보장하지 않는 프로토콜이므로 제한된 용도로만 사용. ( 음성이나 영상 )
* ICMP(Internet Control Message Protocol) : 에러에 대한 정보를 알려주는 프로토콜.
cmd ping 같은 경우도 ICMP의 종류
* 버퍼사이즈(윈도 사이즈)가 0일경우, 세션만 유지시키고 데이터를 기다리는 상태 ( 흐름제어 )
* 흐름제어 : 송신측이 수신측의 처리속도 보다 더 빨리 데이타를 보내지 못하도록 제어해 주는 것)
* 슬라이딩 윈도우 : 서버에서 한 번에 받을수 있는 데이터 크기를 윈도 사이즈라고 하고, 네트워크 상황에 따라 이 윈도 사이즈를 조절하는 것이 슬라이딩 윈도우이다.
Port Number
Port Num : 16bit로 표기 2^16 = 65,536개의 포트가 존재
시스템포트( 0 ~ 1023 ) : well-known port / 서버용
사용자(업체) 포트 ( 1024 ~ 49151 ) : 레지스트리(등록) 포트 / 서버용
동적,사설,임시포트 ( 14152 ~ 65535 ) : 클라이언트용 포트
출발지 포트가 13959, 목적지 포트가 80이면 클라이언트가 서버에 보내는 포트이고
출발지 포트가 80, 목적지 포트가 13959이면 서버가 클라이언트에 보내는 포트이다.
Author And Source
이 문제에 관하여(네트워크교육 4일차(2022.01.06) - 정리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@hoon13/네트워크교육-4일차2022.01.06-정리저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)