독서,검색/모두의 네트워크

221230 TCP 헤더의 구조 와 일련번호, 확인응답번호

NOG 2022. 12. 30. 14:04

목적 : 매일 글쓰기 습관을 만들고 기록과 공유를 통해서 기억을 상기시키고

생각 안날 때 바로바로 찾을 수 있도록 하기 위해서

요약 출처 : 모두의 네트워크 - 길벗

 

캡슐화 : 계층별로 데이터를 전달할 때 헤더를 붙이는 것

역캡슐화 : 계층별로 데이터를 전달할 때 헤더를 제거하는 것

 

TCP 헤더 : TCP로 전송할 때 붙이는 헤더

세그먼트 : TCP 헤더가 붙은 데이터

 

TCP 헤더

출발지 포트 번호(16비트) 목적지 포트 번호(16)
일련번호(32)
확인 응답 번호(32)
헤더길이(4) 예약영역(6) 코드비트(6) 윈도우 크기(16)
체크 섬(16) 긴급 포인터(16)
- -    - 

 

 데이터를 전송하려면

연결(connection  = 가상의 독점 통신로를 확보)  확립 해야함.

 

 

코드비트

107번째 비트 부터 112번쨰 비트까지 코트비트(6비트)로 연결의 제어 정보가 기록되는 곳

코드비트 의 초깃값 0 => 활성화 시 1

 

각 1비트

 

URG 0

ACK 0

PSH 0

RST 0

SYN 0

FIN 0

 

 

3-WAY HANDSHAKE (연결 수립)

TCP 통신에서 사용되는 연결을 위해 데이터 전송 전 세 단계로 패킷 교환을 하면서 확인하는 과정

연결 확립하려면 SYN (연결 요청)  ACK (확인 응답) 가 필요

 

 

A 컴퓨터💻-> B 컴퓨터💻

1. 연결 확립 요청 (SYN)

 

A💻<-B💻

2. 연결 확립 응답(ACK) + 연결 확립 요청(SYN)

 

A💻->B💻

3. 연결 확립 응답(ACK)

 

 

4-WAY HANDSHAKE (연결 종료)

 

데이터 전송 후 연결을 끊기 위한 요청

연결 종료하려 FIN (연결 종료 요청)  ACK (확인 응답) 가 필요

 

A 컴퓨터💻-> B 컴퓨터💻

1. 연결 종료 요청 (FIN)

 

A💻<-B💻

2. 연결 종료 응답(ACK)

3. 연결 종료 요청(FIN)

 

A💻->B💻

4. 연결 종료 응답(ACK)

 

 

각 단계에서 쓰여지는 코드 비트(SYN,ACK,FIN)만 활성화 되어 1이 됨.

 

일련번호(Sequence number) 와 확인응답번호(acknowledgement number)

 

출발지 포트 번호(16비트) 목적지 포트 번호(16)
일련번호(32)
확인 응답 번호(32)
헤더길이(4) 예약영역(6) 코드비트(6) 윈도우 크기(16)
체크 섬(16) 긴급 포인터(16)
- -    - 

3 WAY HAND SHAKE 가 끝나고 실제 데이터를 보내거나 상대방이 받을 때

시퀀스 넘버와 확인응답 넘버를 사용

 

시퀀스 넘버는 송신 측에서 수신 측에 데이터가 몇 번째 데이터인지 알려주는 데 사용

Sequence : 일련된 연속된 사건들, 순서

 

확인 응답 넘버는 수신 측이 몇 번째 데이터를 수신했는지 알려주고 다음 번호의 데이터를 요청하는 데 사용

 

데이터 전송완료까지 반복하며 사용되고 이 두 번호를 통해 데이터가 손상,유실된 경우 재전송하게 됨. (재전송제어)

 

첫번째 시퀀스 넘버와 첫번째 확인응답 넘버는 전송 전 3-way handshke 연결 수립 시  결정됨 

'''

시퀀스 넘버의 데이터를 보냅니다. 확인응답 넘버의 데이터를 보내주세요.

를 데이터 전송 완료까지 반복한다고 이해했음.

'''