* 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 |