상세 컨텐츠

본문 제목

TCP

컴퓨터통신

by 후추리 2024. 12. 16. 23:25

본문

* TCP *

- connection-oriented, reliable 전송 프로토콜

- 흐름제어 및 오류제어 기능 있음

- server는 well-known 포트, client는 일시적인 포트주소

- Socket Address : IP 주소 + Port 넘버

- Stream Data service : 송신측과 수신측은 버퍼를 사용(write, read)

- Full-Duplex : 두 프로그램이 연결되면 양쪽 모두 전송과 수신이 가능

- Piggybacking : 수신한 패킷에 대한 확인응답(ACK)

 

 

 

 

* Segment *

 

- Sequence number : 데이터의 첫 번째 바이트에 할당된 번호 정의

- Acknowledgment number : 다음으로 수신해야할 바이트의 번호

- Control : 흐름제어, 연결 설정 및 종료, 데이터 전송 모드 결정

- Window size : 수신 측에서 유지해야하는 윈도우의 크기 정의

- Urgent Pointer : 긴급 데이터가 포함되어 있을 때 사용

- Options* : 수신자에게 추가 정보를 전달하거나 정렬을 위해 사용됨

 

 

 

* Options *

- End of Option : 헤더의 끝을 표시

- No Operation : 옵션 간의 filler로 사용

- Maximum segment size : 연결 설정 단계에서 목적지에서 수신할 수 있는 데이터의 최대 크기 정의

- Window scale factor : 흐름제어에서 슬라이딩 윈도우의 크기 정의

- Timestamp : 왕복시간 계산

 

 

 

* Flow Control *

- 송신자가 확인응답을 받기 전에 전송할 수 있는 데이터의 양 정의

- 흐름 제어를 위해 슬라이딩 윈도우 사용

- 윈도우 크기는 목적지의 advertisement에 따라 동적으로 조절됨

- 두개의 버퍼와 하나의 윈도우가 사용됨

- 송신 측의 윈도우 크기는 수신 버퍼의 남은 공간

 

 

 

* Error Control *

- 오류 감지 및 수정까지 함

- Checksum, Acknowledgment, Timeout

- 중복 세그먼트와 순서가 바뀐 세그먼트가 있을 수 있음

- Lost Acknowledgment 문제가 있을 수 있음

 

 

 

* Timers *

- Retransmission Timer

- Peristence Timer : 지속 타이머가 만료되면 송신자는 프로브 세그먼트를 전송

- Keepalive Timer : 장기간 비활성 연결을 방지하기 위해 사용

- Time-waited

 

 

 

 

* Three-way Handshaking *

- 연결 설정 절차

- Passive Open : 서버는 연결 요청을 수락할 수 있지만 스스로 생성 불가능

- Active Open : 클라이언트는 특정 서버와의 연결을 요구

 

1) 클라이언트 -> 서버 연결 요청 (SYN)

2) 서버 -> 클라이언트 연결 요청 확인/수락 (SYN, ACK)

3) 클라이언트 -> 서버 응답 확인(ACK/연결 완료)

 

 

 

* Four-way Handshaking *

- 연결 종료 절차

 

1) 호스트 A가 연결 종료 요청 (FIN)

2) 호스트 B가 요청 확인 (ANK)

3) 호스트 B는 자신의 데이터 전송을 완료 후 종료 요청 (FIN)

4) 호스트 A가 요청 확인 (ACK)

'컴퓨터통신' 카테고리의 다른 글

Frame Relay, Routing Protocol  (0) 2024.12.17
ATM, ARP, RARP  (4) 2024.12.16
UDP  (3) 2024.12.16
IP(1)  (2) 2024.12.16
ICMP  (2) 2024.12.16

관련글 더보기