Options
- 헤더: 옵션 안 쓰면 20, 쓰면 60byte까지 가능
1. Single-byte
1) End of option list
2) No operation
2. Multiple-byte
1) Maximum segment size
2) Window scale factor
3) Timestamp
4) SACK-permitted
5) SACK
1-1) End-of-option option
- 한줄 32bit 맞추려고 빈칸 채우기 (패딩)
- EOP는 한 번만 쓸 수 있다.
1-2) No operation
- 앞이 빈 옵션을 넣을 때 얘로 채움 (패딩)
- NOP는 한 번 이상 쓸 수 있다.
2-1) Maximum segment size
- 클라이언트-서버가 (연결 setup 과정에서) 협의로 segment size를 바꿀 수 있는 옵션. 중간에는 못바꿈.
- cwnd=1MSS, Nagle 알고리즘에 나왔었음.
2-2) Window scale factor
- rwnd에만 적용된다. (받는쪽. received window. 보내는쪽은 cwnd) connection setup과정에서만 가능. 중간x
- rwnd 사이즈를 2n만큼 키우고 싶을 때, 윈도사이즈 값을 n으로 나눠서 보낸다는 의미로 scale factor에 n 씀
- 받는 쪽은 rwnd=k 받으면 rwnd=k*2n으로 이해하고 그만큼 데이터를 보낸다.
- rwnd는 16bit를 사용하여 receiver window size의 값을 전송
- 216 = 210 X 26 = 64K byte 만큼의 데이터 전송 가능
- 64K Byte /s = 64K X 8 bit/s = 512 Kbps = 0.5 Mbps
2-3) Timestamp
- RTT measurement 할 때 씀.
- 출발시간, 도착시간이 이 옵션에 있음
- timestamp 옵션은 PAWS(Protection Against Wrapped Sequence number)를 위해 사용되기도 한다.
: 파일이 진짜 크면, 한바퀴 돌면서 계속 쓸 수 있는데, 출발시간을 써놓으면 seq num 겹쳐도 구별 가능
2-4) SACK-permitted, SACK
- cummulative ACK의 단점: 패킷이 없어진 이후의 상황을 설명할 수 없다. 따라서 잃은 것 이후의 패킷을 다 보낸다. 이를 보완하기 위해 SACK을 사용한다. (setup 과정에서 동의해야됨)
- 손실된 segment에 의해 ACK을 보낼 때 이미 받은 segment의 정보를 보내면 상대방은 얘네를 제외하고 없는걸 재전송함 (불필요한 중복을 막음)
'네트워크 > 컴퓨터네트워크' 카테고리의 다른 글
NAT (Network Address Translation) (0) | 2021.06.28 |
---|---|
IPv4 Addresses (0) | 2021.06.28 |
TCP (0) | 2021.06.28 |
Error Control (0) | 2021.04.06 |
Silly Window Syndrome / SYN Flooding (0) | 2021.04.06 |
댓글