뭉게뭉게 엔지니어

L4 - Transport Layer 본문

☁ 네트워크 기초 따라가기/OSI 7 & TCP IP

L4 - Transport Layer

어푸어푸🌊 2022. 6. 20. 20:33

Transport 계층은 

port주소를 지정하여 서비스를 구분할 수 있게 해주고, 데이터의 전송 방식을 결정한다. 

필요에 따라 단편화 작업을 수행한다. 

1) 주소: Port Address

2) Protocol : TCP, UDP

3) 장비 : L4 Switch 

    **장비는 일반적으로 하위계층의 기능을 포함한다.

 

1) Port Address 란

Application 구분을 위해 필요한 것으로, 시스템 내부의 프로세스 또는  프로그램 식별을 위해 사용하는 식별 값이다.

프로그램 설계 시 사용할 Port 주소가 지정되며, 이는 IANA에서 관리한다. 

- 2byte(16bit) 크기의 10진수 한 자리로 표기한다.

- port주소의 총 개수는 2^16(=65536)개이다. 즉, 0번부터 65535번까지!

- 이는 사용 목적에 따라 3가지로 분류된다.

Well Known Service Port(0~1023) : 잘 알려진 서비스 프로그램용으로 예약된 주소

       

                ※암기해야하는 주요 포트 번호※

ftp 21,20* dns 53 pop3 110
ssh 22 dhcp 68,67** imap4 143
telnet 23 tftp 69 ssl 443
smtp 25 http 80 rdp 3389***

 * 21이 20에 우선한다.

 **68과 67은 동일하다.

 ***well known service port는 아니지만 외워두는 것이 좋다.

 

② Registered Port(1024~49151) : Online용으로 개발된 프로그램의 네트워크 통신을 위해 할당하는 주소 

③ Dynamic Port(49152~65535) : 등록하지 않고 임의로 사용할 수 있는 주소

2-1) Protocol_TCP (Transmission Control Protocol)

TCP는 데이터 전달의 신뢰성을 최대한 보장하는 것으로, 아래와 같은 특성을 가진다.

 ① Connection Oriented (연결 지향) : 데이터를 전달할 논리적인 연결을 먼저 구성하며, 이를 3way Handshake라 한다.

      ※ 3way Handshake (연결 설정) ➡ 데이터 전송 ➡ 4way Handshake(연결 종료)

  3way Handshake
  - TCP 통신 전 미리 연결을 설정하는 것으로, 상호간의 연결을 통해 신뢰성을 보장하기 위한 기법임.
  - 정상 통신이 가능하면 논리적인 양방향 연결을 맺은 후 Segment를 전송함.

 ② Reliability (신뢰성 보장) : 순차적으로 데이터를 전송하고 확인응답 및 재전송을 실행함.

      ※ 송신 (Sequence Number) ➡ 응답 (Acknowledgement Number)     

 ③ Flow Control (흐름 제어) : 데이터 전달에 지연 현상 발생 시 데이터의 양을 조절함(Sliding Window).

 ④ TCP는 Header가 길어 많은 정보를 담을 수 있기에 정확한 데이터 전달이 필요한 대부분의 서비스에 사용된다. 

 ⑤ Full-Duplex, P2P(Point to Point) 방식 

 

그렇다면 TCP Header는 얼마나 많은 정보를 담고 있는지 알아보자

 

 TCP Header 

▷ Source Port Address : 출발지 포트 번호
▷ Destination Port Address : 목적지 포트 번호
Sequence Number (seq no) : 순서화된 일련번호로, 초기 순서 번호는 임의로 설정함.
                                                    전송되는 데이터의 크기를 누적시키며 순서를 알려줌
Acknowledgment Number (ack no) : 확인 응답 번호로, 데이터를 정상수신하면 예상하는 다음 Seq no를 알려줌. 
▷ Data offset : 4개의 bit로 표현되고(0000~1111), 4byte단위로 표시되어 최대길이는 60byte(15x4).
▷ Reserved : 예약된 field로 TCP Flags의 앞에 붙어 나와 0으로 표시되어 크게 신경쓰지 않아도 되는 필드.
TCP Flags : 논리적인 TCP 연결회선 제어 및 데이터 관리를 위해 사용함.
                         TCP메시지의 종류를 명시함(어디에, 어떻게 쓰이는가).


▷ Window : 통신의 상대에게 자신의 버퍼 여유용량의 크기를 지속적으로 알려주며, 능동적인 흐름제어를 위해 사용됨. 
▷ Checksum : Pseudo Header를 구성하여 데이터를 내보낼 때에 오류 검출을 실행함.
▷ Urgent Pointer : TCP Flags의 U에 1이 뜨면 바로 작동함.

이러한 TCP의 확인 응답은 세가지 유형으로 나뉜다.

 ① 일반 확인 응답 (Segment : ACK = 1: 1)

    - 출발지에서 Segment가 전달되면 반드시 목적지에서 전달 받았음을 확인함.

    - 확인응답을 받아야지만 다음 데이터를 전달할 수 있음. 

 

 ② 누적 확인 응답 (Segment : ACK = N : 1)

    -  TCP 연결 설정을 통해 한번에 보낼 수 있는 Segment의 양을 약속함.

    - 출발지에서는 목적지 확인 응답이 없어도 지정된 양에 해당하는 Segment를 계속 전달함.  

    - 목적지에서는 지정된 양의 Segment를 전달 받았을 때 하나의 확인 응답을 전달함.

    - 중간에 손실된 Segment 발생 시 정상적으로 전달받은 Segment까지 재전송 해야함. 

 

 ③ 선택적 확인 응답 

    - 누적 확인 응답의 문제점을 해결하기 위한 방식.

    - 확인 응답을 할 때 재전송이 필요없는 Segment의 정보를 알림으로써 불필요한 재전송을 방지함.

 

<TCP 상태 천이 다이어그램>

 

2-2) Protocol_UDP (User Datagram Protocol)

UDP는 간단하게 말하면  TCP와 반대라고 생각하면 된다. 이를 기반으로 특성을 정리하면 아래와 같다.

 ① Connectionless (비 연결 지향) 

 ② Unreliability (비 신뢰성) 

 ③ 최소화된 Header : 데이터의 빠른 전달 보장 ex)실시간 통신, 음성 서비스 등

 ④ 데이터 그램 형식

 ⑤ 수신여부를 확인하지 않으며 전송 순서가 바뀔 수 있음.

 

UDP Header

 

'☁ 네트워크 기초 따라가기 > OSI 7 & TCP IP' 카테고리의 다른 글

Network model 정리본!  (0) 2022.07.16
L3 - ARP와 ICMP  (0) 2022.06.20
L3 - Network / Internet  (0) 2022.06.20
L2 - Data Link / Network Interface(Network Access)  (0) 2022.06.20
L1 - Physical / Hardware  (0) 2022.06.20
Comments