각각의 프로토콜과 Header(헤더)에 관한 내용을 학습하였다.
1. IPv4
2. ICMP
3. UDP
4. TCP
자료출처 - https://nmap.org/book/tcpip-ref.html
- PDU : 패킷(Packet)
- IP Flags : 전송하는 데이터의 분할 여부에 대한 플래그
- Fragment Offset : 분할된 데이터의 크기 (MTU에 맞게 분할)
- Internet Control Message Protocol : 장비나 목적지와 관련된 네트워크 에러 메시지를 전달해 줌. 어떤 이유로 신호가 전달이 안되었는지 type number와 code number로 표현함 (type8, type0 …)
- 예) Ping(핑)
- 원칙적으로 ICMP를 막으면 안됨.
- 모든 네트워크 신호가 운영체제까지 가지 않음. RAM까지만 도달하는 신호가 있음. 이러한 신호를 통과시키거나 막는 규칙이 있음.
- ICMP를 막아라 → 불필요하게 요청, 응답하는 것들을 막으라는 뜻.(예-ping) 왜? 운영체제까지 가지 않는 네트워크 신호는 RAM자원을 고갈시킴.
- 불필요한 ICMP를 방화벽이 막아줌. 공유기, 윈도우 서비스 등이..
- ICMP는 원래 데이터를 담지 않지만 담을 수 있다. 하지만 쓰레기 값이 들어있다.(혹시 몰라 만들어 놓은 기능?)
- 전송 계층은 Port가 있어야 어떤 어플리케이션이랑 맵핑시킬때 필요하므로 중요
- UDP는 오토바이로 배송하는 느낌 (TCP는 탑차 - 신뢰도 높은 데이터를 전송할 때)
- 속도가 빠름. 데이터를 검사하지 않음. 신뢰도가 없음.
- 되면 되고 안되면 안됨. 중간에 확인하는 절차가 없음. 단순무식 무대포. 중간에 끊어지면 처음부터 다시.
- Checksum : 데이터 변조를 체크하는 게 아니라, 헤더의 구성요소가 변화된지를 체크
- QUIC / HTTP3 는 UDP를 다시 활용하는 CASE
- UDP문제점 : 헤더 자체에 통신이 어떤 상태인지에 대한 정보와 어디까지 전송했는지 Count 해주는 정보가 없음 → 이것을 해결 해 주어야 함 → TCP로 개선
- source : 클라이언트 / destination : 서버 (절대적인 것은 아님)
- sequence No + Acknowledgement No.: 다음 통신은 어떻게 이어지는 지에 대한 계산. 어디까지 통신했는지. 다음 Next통신을 예측하고 이어받게 해주는 장치
- TCP Flags : 특정 연결 상태를 나타내거나 문제 해결 목적 또는 특정 연결의 제어를 처리
TCP state diagram
- Flags를 보고 어떻게 동작할지를 어떻게 아나? → tcp state diagram
- 메모리 영역에 다이어그램처럼 동작하도록 프로그래밍 되어있다.
- netstat -antp의 state로 현재의 네트워크 상태를 확인할 수 있다.
- 3-Way Handshake : TCP 연결이 ESTABLISHED 상태가 되기 위해 사전에 세션 수립
- 4-Way Handshake : TCP 세션을 종료하기 위한 절차