아래의 상기 내용은
"혼자 공부하는 네트워크"의 도서 내용과 인터넷의 내용을 실습 및 정리한 글입니다.
1.TCP(Translation Control Protocol)
1)정의
-전송계층에서 사용되는 데이터의 신뢰성이 보장되는 연결형 프로토콜.
2)통신 단계
3)MSS(Maximum Segment Size)
-MSS란 TCP로 전송할 수 있는 최대 페이로드 크기.
-MSS는 TCP 헤더의 크기는 제외하는 형식을 가진다.
4)TCP 세그먼트 구조
-송신지 포트(source port)와 수신지 포트(destination port) : 송신지와 수신지 포트
-순서번호(sequence number): 순서 번호가 명시되는 필드. 세그먼트의 올바른 순서를 보장을
위해 사용됨
-확인 응답번호(acknowledgment number):상대 호스트가 보낸 세그먼트에 대한 응답으로,
다음으로 수신하기를 기대하는 순서번호가 명시
-제어 비트(Control bits): 플래그 비트라고 부르며 현재 세그먼트에 대한 부가정보를 나타낸다.
-윈도우(wnidow): 수신 윈도우의 크기를 명시. 수신 윈도우란 한번에 수신하고자 하는 데이터의
양을 뜻한다.
5)제어비트(Control bits)의 필드
-제어비트는 세그먼트에 대한 부가정보.
-제어비트는 기본적으로 8비트로 구성된다.
-각 자리의 비트는 각기 다른 의미를 가지는데 대표적으로 ACK,SYN,FIN이 존재한다.
-ACK:세그먼트 승인을 나타내기 위한 비트
-SYN:연결을 수립하기 위한 비트
-FIN:연결을 종료하기 위한 비트
6)순서번호와 응답번호
-순서번호와 응답번호의 필드는 TCP의 신뢰성을 보장하기 위해 사용되는 중요한 필드.
-순서번호는 세그먼트의 올바른 송수신 순서를 보장하기 위한 번호로 세그먼트 데이터의
첫 바이트에 부여되는 번호.
-전송할 데이터는 MSS 단위로 쪼개지며 MSS마다 순서번호가 존재한다.
-처음 통신을 위해 연결을 수립할 경우 제어비트 중 SYN가 1로 설정된 세그먼트 순서번호는
무작위 값이 되고 이것을 초기 순서번호(ISN : Initial Sequence Number)이라고 한다.
-연결 수립이후 데이터를 송신하는 동안 순서번호는 초기순서번호 + 송신한 바이트 수가 된다.
-확인 응답번호는 순서번호에 대한 응답.
-수신자가 송신자에게 다음에 받아야 할 순서번호를 보낸다.
-이 때 ACK비트를 1로 설정하여 이번에 다음 순서번호+1 형태로 보내게 된다.
2.TCP연결수립과 종료
1)연결수립: 쓰리 웨이 핸드셰이크(three-way-handshake)
-세 단계로 이루어진 TCP 연결 수립 과정.
-처음 연결 수립 과정을 액티브 오픈(active open)이라고 하며 클라이언트가 서버에 요청하는 행을 말한다.
-반대로 연결요청을 받고 연결을 수립하는 행동을 패시브 오픈(passive opeen)이라고 한다.
2)연결 종료
-연결을 수립한 뒤 송 수신이 끝났다면, 연결을 종료해야 한다.
-송수신 호스트가 각자 한번씩 FIN와 ACK를 주고받는다.
-연결을 종료하려는 행동을 액티브 클로즈(active close),연결 종료 요청을 받아들이는 행동을
패시브 클로즈(passive close)라고 한다.
3.TCP 상태
1)개요
-TCP는 통신을 유지하기 위해 다양한 상태를 유지한다
-상태(state)는 현재 어떤 통신 과정에 있는지를 나타내는 정보이다.
-TCP 상태를 유지하고 활용한다고 하여 스테이트 풀(state full) 프로토콜 이라고 부른다.
-상태 분류로는 크게 연결이 수립 되지않은 상태,연결 수립과정에서 볼 수 있는 상태,
연결 종료 과정에서 볼 수 는 상태. 3가지로 나뉜다.
2)연결 수립이 되지 않은 상태
-CLOSED : 아무런 연결이 없는 상태.
-LISTEN : 연결 대기상태 일반적으로 서버로서 동작하는 패시브 오픈 호스트는 LISTEN상태를
유지한다.
3)연결 수립 상태
-SYN-SENT: 액티브 오픈 호스트가 SYN 세그먼트를 보낸뒤 그에 대한 응답인 SYN+ACK
세그먼트를 기다리는 상태. 연결요청을 보낸 뒤 대기하는 상태.
-SYN-RECEIVED:패시브 오픈 호스트가 SYN+ACK 세그먼트를 보낸뒤 ACK 세그먼트를
기다리는 상태
-ESTABLSHED:연결이 확립 되었음을 나타내는 상태. 데이터를 송수신 할 수 있는 상태를
의미한다.
4)연결 종료 상태
-FIN-WAIT-1: 일반적인 TCP 연결 종료 과정에서 첫단계. FIN 세그먼트로 연결요청을 보낸
액티브 클로즈 호스트는 FIN-WAIT-1 상태가 된다.
-CLOSE-WAIT: 종료 요청인 FIN 세그먼트를 받은 패시브 클로즈 호스트가 그에 대한 응답으로
ACK 세그먼트를 보낸 후 대기중인 상태
-FIN-WAIT-2: FIN-WAIT-1 상태에서 ACK세그먼트를 받게 되면 되는 상태. 상대 호스트의
FIN 세그먼트를 기다리는 상태.
-LAST-ACK: CLOSE-WAIT 상태에서 FIN 세그먼트를 전송한뒤 이에 대한 ACK 세그먼트를
기다리는 상태.
-TIME-WAIT:액티브 클로즈 호스트가 FIN 세그먼트를 수신한 뒤, 이에 대한 ACK 세그먼트를
전송한 뒤 접어드는 상태. 패시브 클로즈 호스트가 마지막 ACK 세그먼트를 수신하면 CLOSED
상태로 전이하는 한편, TIME-WAIT상태에 접어든 액티브 클로즈 호스트는 일정 시간을 기다린
뒤 CLOSED 상태로 전이합니다.
-CLOSING : 동시에 연결을 종료하려 할 때 전이되는 상태. 서로가 FIN 세그먼트를 보내고 받은 뒤 그에 대한 ACK 세그먼트를 보냈지만, 아직 자신의 FIN 세그먼트에 대한 ACK세그먼트를
받지 못할 때 발생한다. 양쪽 모두가 연결을 종료를 요청하고, 서로의 종료 응답을 기다리는 경우 CLOSING상태가 발생 하는것. 양쪽 ACK 세그먼트를 받으면 종료하게 된다.
4.UDP 데이터그램
1)정의
-UDP는 전송계층에서 데이터의 신뢰성이 보장되지 않는 프로토콜.
-TCP와 반대로 상태를 가지지 않아 스테이트리스(stateless) 프로토콜 이라고 부른다.
-UDP의 데이터 그램은 TCP비해 단순하다.
2)구조
-송신지 포트와 수신지 포트: 송수신지의 포트.
-길이: 헤더를 포함한 UDP 데이터 그램의 바이트가 담긴다.
-체크섬 : 데이터 그램 전송과정에서 오류가 발생했는지 검사하기 위한 필드.
수신지에서 데이터그램 정보가 훼손되었는지 판단되면 데이터그램을 파기한다.
'네트워크 > 혼자 공부하는 네트워크' 카테고리의 다른 글
05-01 DNS와 자원 (0) | 2024.08.06 |
---|---|
04-03 TCP의 오류,흐름,혼잡 제어 (0) | 2024.08.04 |
04-01 전송 계층 개요: IP의 한계와 포트 (0) | 2024.08.01 |
03-03 라우팅(Routing) (0) | 2024.07.30 |
03-02 IP주소 (0) | 2024.07.29 |