전송계층
- 응용계층 애플리케이션 프로세스 식별 : 포트
- 네트워크 계층의 신뢰성 / 연결성 확립
웹 브라우저, 게임, 메신저 등 클라이언트에서 여러 동작이 수행 중이라면
어떤 곳에 보낼지는 네트워크 계층이 하지 못한다.
클라이언트에서 어디에 보낼지 결정하는 것은 전송계층이다.
포트
- 포트 번호는 16비트로 표현 가능 (65536개)

널리 알려진 포트

등록된 포트

동적 포트
- 사용자가 자유롭게 할당가능한 포트
- 클라이언트는 일반적으로 동적 포트로 동작

윈도우 네트워크 리소스 탭
- 크롬 브라우저는 192.168.0.3 출발지 주소의 51707 포트 번호를 할당받아 사용중이며 443 포트와 정보를 주고받고 있다.
- 443 https로 https의 142.250.199.99와 통신 중인 것을 알 수 있음

NAT 에서..
- 사설 IP에서 공인 IP로 변환 될 때 다른 포트 번호로 나가기에 구분이 가능해진다.

포트확인 실습
netstat // 포트 확인
netstat -n // 포트 번호로 확인
netstat -nt or -tn // tcp만 확인
netstat -un ot -nu // udp 확인
netstat -a // 전부
netstat -pt // pid 확인
// 그외 help

TCP와 UDP
TCP
TCP 세그먼트로 보낼 수 있는 최대 크기 : MSS(Maximum Segment Size)

TCP 구조

- 출발지 포트, 목적지 포트 : 각 목적지와 출발지에 대한 포트
- 제어 비트
- ACK : 세그먼트를 승인을 나타냄
- SYN : 연결 수립
- FIN : 연결을 끝냄
- RST : 연결을 리셋
- 순서 번호 : 송수신되는 세그먼트 데이터에 첫 바이트에 부여
- 확인 응답 번호 : 다음으로 수신받기 기대하는 바이트 번호
- 윈도우 : 수신지 윈도우 크기, 한번에 수신 받고자하는 양
UDP

- 체크섬 : 신뢰성과 관련 없음.
- 이미 받은 데이터에 대해서 오류를 확인하는 거지 데이터를 잘 받을 것이다하는 건 아니기 때문
- 빠른 성능
TCP, UDP 패킷 분석
3-way-handshake

4-times-close

- FIN -> ACK -> FIN, ACK -> ACK
UDP

- 실제 패킷 데이터도 목적지, 출발지 포트, 길이, 체크섬 처럼 단순하다.