호스트 A 전송을 설명해 주세요.
(2) 호스트 B 가 첫 번째 메시지 세그먼트를 받은 후 반송된 확인 번호는 무엇입니까? 반송된 확인 번호는 100 입니다.
(3) B 가 두 번째 메시지 세그먼트를 받은 후 반송된 확인 번호가 180 이면 A 가 보낸 두 번째 메시지 세그먼트의 데이터는 몇 바이트입니까? 확인 번호가 180 이면 데이터는 180- 100=80 입니다.
(4) A 가 보낸 첫 번째 단락이 분실되었지만 두 번째 단락이 B 에 도착하면 B 는 두 번째 단락이 도착한 후 A 에게 확인을 보냅니다. 이 확인번호는 얼마여야 하나요? 첫 번째 메시지 세그먼트를 받지 못했기 때문에 확인 번호는 70 입니다.
확장 데이터:
함수 mytcp_sync_mss 는 TCP 소켓의 MSS 관련 멤버를 데이터 동기화합니다. 기본 알고리즘은 다음과 같습니다.
1. 일반적으로 현재 MSS 는 mtu-IP header -TCP header (옵션 없음) 여야 합니다.
2, TCP _ sock 구성-> rx _ opt-> Mss_clamp 에는 피어가 통보한 허용 가능한 MSS 값이 포함되어 있습니다. 이 값이 첫 번째 단계에서 계산된 MSS 보다 작으면 이 값을 기준으로 합니다.
3. IP 보고 헤더에 IP 옵션이 있는 경우 MSS 에서 옵션 길이를 빼야 합니다.
4. MSS 가 48 보다 작으면 48 로 설정합니다.
5. TCP 헤더에서 옵션의 길이를 뺍니다.
6. MSS 가 현재 슬라이딩 창 크기의 1/2 보다 큰 경우 슬라이딩 창 크기의 1/2 를 MSS 값 (48 미만 아님) 으로 가져옵니다.
7. 멤버 mss_cache 는 방금 계산된 MSS 를 캐시하는 데 사용됩니다.
따라서 로컬 이더넷의 MSS 는 1460 이 정확하지 않으며 동적으로 변경됩니다. IP 헤더 및 TCP 헤더에 옵션이 있는 경우 MSS 를 그에 따라 줄여야 합니다. 일반 TCP 헤더에는 12 바이트의 타임스탬프 옵션 (2 바이트 채우기 옵션 추가) 이 있습니다. 여기서 MSS 는 1448 과 같습니다.
Baidu 백과 사전 -—TCP 메시지 형식