브래의 슬기로운 코딩 생활
네트워크기초실습 7주차 정리 - 3교시 본문
TCP
TCP
TCP 개요
- 전송 계층에 해당 (OSI 계층형 모델, TCP/IP 모델)
- 네트워크 계층인 IP 패킷의 Payload에 탑재되는 SDU중 하나
- 연결 지향형(Connection Oriented) 프로토콜
- 흐름제어를 위해 슬라이딩 윈도우 (Sliding Window) 방식을 사용
- 최소 20 바이트의 헤더 크기를 가짐
TCP 구조
- 송신 포트 (Source Port, 16비트)
; 운영체제 내 송신 프로세스의 주소
; 프로세스 식별을 위해 운영체제는 동적인 번호를 할당
- 수신 포트 (Destination Port, 16비트)
; 수신 프로세스의 주소
; 수신 포트는 서버 구동 시 할당됨
- 순서 번호 (Sequence Number, 32비트)
; TCP 세그먼트의 일련번호
; 일련번호는 세그먼트 별 1씩 증가 (보안을 위해 운영체제마다 일부 다름)
; 세그먼트의 누락 해결, 순서 교정 및 중복 세그먼트 방지용
--------------------------------------------------------------------
- ACK 번호 (Acknowledge Number, 32비트)
; 다음 번에 수신될 것으로 예상되는 세그먼트의 번호
- HLEN (Header Length, 4비트)
; 헤더의 크기(지정 크기 X4, 기본값: 101b) - 기본값: 0101b = 5 -> 20바이트 (=5X4)
; 이 값을 통해, 세그먼트 내 데이터 (SDU)의 시작 위치를 알 수 있음
- 예약 (Not Used)
; 미래를 위해 남겨 놓은 영역
; 현재까지 사용되지 않고 있음
------------------------------------------------------------------
플래그 비트 (Flag Bits, 6비트)
- 회선, 데이터의 관리와 제어 기능 등을 수행하는 영역
- URG 플래그 (Urgent)
; 긴급 포인터임을 알림
; 순서에 상관 없이 먼저 송신됨
- ACK 플래그
; ACK 번호 영역의 값이 유효
; 접속 요청에 사용되는 STN 메시지 이후에는 항상 1로 설정됨
- PSH 플래그
; 버퍼의 내용을 채우지 않고 바로 전송을 수행
- RST 플래그
; TCP 연결을 해제하기 위해 사용
; 전송 중에서 강제 접속 해제에 사용
- SYN 플래그
; 연결 설정에 사용
- FIN 플래그
; 전송할 남은 데이터가 없음을 알림, 즉 연결 종료
-------------------------------------------------------------
- 윈도우 크기 (Window Size, 16비트)
; 흐름 제어를 위해 사용하는 16비트 영역
; 송신자에 수신자의 버퍼 여유 크기를 지속적으로 통보
- 체크섬 (Checksum, 16비트)
; TCP 세그먼트 전체에 대한 오류 검출
; 에러 제어용
- 긴급 포인터 (Urgent Pointer, 16비트)
; URG 플래그가 설정된 경우 긴급 포인터 영역
; 응급 데이터의 위치
- 옵션 (32xn 비트)
; 다양한 확장 기능과 관련된 영역
; 옵션에 따라 TCP 헤더의 크기가 변함
; 타임스템프, 최대 세그먼트 크기 등의 기능이 포함
; 일부 옵션은 SYN 플래그가 설정되어 있을 때만 전송
'1-2 > 네트워크 기초 실습' 카테고리의 다른 글
네트워크기초실습 8주차 정리 - 2교시 (0) | 2022.10.20 |
---|---|
네트워크기초실습 8주차 정리 - 1교시 (0) | 2022.10.20 |
네트워크기초실습 7주차 정리 - 2교시 (0) | 2022.10.14 |
네트워크기초실습 7주차 정리 - 1교시 (5) | 2022.10.13 |
네트워크 기초실습 6주차 정리 - 3교시 (0) | 2022.10.07 |