> TCP의 통신 구조

 

TCP의 특징은 three-hands shaking(SYN - ACK+SYN - ACK)으로 세션을 형성해 신뢰성있는 전송을 합니다.
즉, 데이터의 손상을 대비하여 깨끗하고 온전한 데이터의 전송을 확보한다는 점이 특징입니다.

 

SERVER   CLIENT
WSAStartup   WSAStartup
socket   socket
bind    
listen    
accept 세션형성 connect
send/recv 통신 send/recv
closesocket    
WSACleanup    

 

 

 

 

> UDP의 통신 구조

 

UDP의 특징은 TCP통신과 다르게 세션이 없고 데이터만 전송하면 통신이 완료됩니다.
데이터가 잘 도착했는지의 여부에 대해선 관여하지 않습니다. 

따라서 전송속도는 TCP의 속도보다 빠르다는 장점이 있습니다.

SERVER   CLIENT
WSAStartup   WSAStartup
socket   socket
bind    
send/recv 통신 send/recv
close   close

 

 

 

> 소켓의 개수

 

 TCP 통신에서는 소켓과 소켓의 관계가 일대일로 대응되어 연결됩니다. 서버가 10개의 클라이언트에 서비스를 제공하려고 한다면 서버에 서버소켓 1개와 클라이언트와의 연결을 위한 10개의 추가소켓이 필요합니다. 그러나 UDP통신에서는 서버와 클라이언트 모두 하나의 소켓만 있으면 되는 특징이 있습니다.

 

> 헤더

 - TCP 헤더 

TCP에는 추가적으로 각 세그먼트에서 헤더 20 바이트의 "선택적"필드가 있습니다. 이 TCP 헤더에는 연결 (소켓)의 소스 포트 및 대상 포트가 있으며 시퀀스 번호, ACK 번호 및 SYN, ACK, RST, FIN, URG 등의 다른 TCP 플래그도 있습니다. 이 헤더에는 슬라이딩 윈도우의 작동에 매우 중요한 부분이 있으며 수신 윈도우의 크기를 나타내는 16 비트 필드가 있습니다.

그리고, TCP가 잘 동작하려면 포트는 필수적인 요소입니다. TCP는이 포트 번호를 사용하여 소켓, 즉 데이터를 내보내거나 데이터를 받는 응용 프로그램을 식별합니다. TCP 포트의 범위는 0-65535이고 그 중에서도 세 가지 유형으로 나뉩니다.

  • 0 ~ 1023 : 잘 알려진 Well-Known Port 라고 부르며, 웹 서버나 메일 서버 등의 일반적인 프로그램들이 사용합니다.
  • 1024 ~ 49151 : Registered Port 라고 부르며, 잘 알려져 있는 프로그램들이 아닌 다른 용도의 프로그램들이 사용합니다.
  • 49152 ~ 65535 : 동적 포트(Dynamic Port)로 서버가 클라이언트를 식별할 때 사용합니다.

 

 

 - UDP 헤더

 

UDP는 각 데이터 그램에서 8 바이트 헤더를 추가합니다. 이 UDP 헤더에는 연결의 소스 포트와 대상 포트 (소켓), 데이터 그램의 길이 및 해당 데이터 그램의 체크섬을 찾아서 헤더나 데이터 그램의 데이터에 오류가 없는지 확인합니다. UDP는이 포트 번호를 사용하여 소켓, 즉 데이터를 내보내거나 데이터를 받는 응용 프로그램을 식별합니다.

 

'Network' 카테고리의 다른 글

[TCP&UDP] TCP통신과 UDP 통신 비교  (1) 2023.11.02
포트포워딩이란?  (0) 2023.11.02

> TCP란

연결지향형인 TCP는 3-way handshaking이라는 과정을 통해 연결 후 통신을 시작합니다.
또한, 흐름제어와 혼잡제어를 지원하며 데이터의 순서를 보장합니다

흐름제어란, 보내는 측과 받는 측의 데이터 처리속도 차이를 조절해주는 것을 말하며,
혼잡제어란, 네트워크 내의 패킷 수가 넘치게 증가하지 않도록 방지하는 것을 말합니다.

하지만 TCP는 UDP에 비해 속도가 느리다는 단점이 있습니다.
따라서, 대부분의 웹 HTTP 통신, 이메일, 파일전송에 사용됩니다.

 

> UDP란?

UDP는 전송계층의 비연결형 프로토콜입니다.
따라서 TCP와 달리 연결 설정이 없으며,
혼잡제어를 하지 않기 때문에 TCP보다 빠르다는 장점이 있습니다.

하지만 데이터 전송에 대한 보장을 하지 않기 때문에 패킷 손실이 발생할 수 있습니다.

UDP는 이러한 특징때문에 DNS, 멀티미디어에서 사용됩니다.

 

 

> TCP 통신과 UDP 통신의 공통점

 

 - 포트번호를 이용하여 주소를 지정한다. 두 애플리케이션이 통신하기 위해 반드시 포트 번호를 결정해야합니다.

 - 데이터 오류를 체크합니다.

   ip가 제공하는 오류 체크 기능은 프로토콜 동작을 위해 반드시 필요한 부분에만 국한됩니다. 즉 ip 헤더에 대한 오류는 체크하지만 데이터에 대한 오류는 체크하지 않습니다. 반면 TCP와 UDP는 헤더와 데이터에 대한 오류를 체크합니다.

 

 

TCP 통신과 UDP 통신의 차이점

 

TCP UDP
연결형 프로토콜
- 연결을 성공해야 통신 가능
비연결형 프로토콜
- 연결없이도 통신가능
데이터 경계를 구분하지 않음
- 바이트 스트림 서비스
데이터 경계를 구분함
- 데이터그램 서비스
신뢰성있는 데이터 전송
- 데이터를 재전송함
비신뢰적인 데이터 전송
- 데이터를 재전송하지 않음
1대 1 통신 (unicast) 1대 1 통신 (unicast)
1대 다 통신 (broad cast, multi cast)

 

'Network' 카테고리의 다른 글

[TCP&UDP] TCP통신과 UDP 통신 비교 (2)  (0) 2023.11.02
포트포워딩이란?  (0) 2023.11.02

공인아이피는 고유한 값으로 인터넷을 사용하는 기기에 하나씩 할당됩니다. 

10.x.x.x 대역, 172.16~31.x.x대역, 그리고 192.168.x.x 대역은 사용되지 않습니다. 이러한 아이피 대역은 회사나 개인 등이 별도로 구축하게 될 사설 네트워크에서만 이용됩니다.

사설 네트워크는 전세계적인 인터넷이 아닌 국지적인 네트워크로써 굳이 인터넷이 필요하지 않은 경우에 사용됩니다. 본래 이러한 사설 네트워크를 구축하기 위해서는 DHCP 서버와 라우터 등등이 필요합니다. 이 때, 이러한 기능이 모여있는 개인용 장비가 공유기입니다. 공유기의 역할은 공유기에 연결되는 모든 기기들에 사설 네트워크를 구축해주는 것입니다. 사설 네트워크이기 때문에 위에서 언급했던 공인 아이피 대역을 사용하지 않고 사설 아이피 대역을 이용하게 됩니다. 주로 이용되는 아이피 대역은 192.168.x.x 입니다. 이처럼 192.168로 시작되는 아이피 주소를 가진 장비는 인터넷에 접속하기 위해서 반드시 공인 아이피를 보유한 장비가 필요합니다. 공유기는 사설 네트워크를 만들면서 동시에 공인 아이피를 하나 할당 받습니다. 그래서 공유기에 연결된 모든 장비는 인터넷에 접근하기 위해서 반드시 공유기를 거쳐야만 합니다. 컴퓨터 한 대가 인터넷에 접근하기 위해서는 아래 그림과 같이 공유기를 거쳐야 합니다.

 

 

사설 아이피 대역은 여러 곳에서 사용하기 때문에 공인 아이피처럼 특정한 기기를 가리키지 않습니다. 그래서 공유기가 보유한 공인 아이피를 알려줘야 합니다.

 

 

이렇게, http://12.34.56.78:80 주소를 인터넷 브라우저에 입력해서 공인 아이피의 80번 포트로 들어오는 연결은 공유기에 도달하면 끝나버립니다. 왜냐하면 공인 아이피로 들어온 80번 포트의 연결을 공유기에서 컴퓨터 1, 2, 3 중에 어떤 곳으로 보내줘야 할 것인지를 판단하지 못하기 때문입니다. 그렇기 때문에 공인 아이피로 들어오는 80번 포트의 연결을 컴퓨터 1의 80번 포트로 연결하라고 공유기에 설정을 해야 하는 것이며, 이것이 포트포워딩입니다.

 

 > DMZ

 

포트포워딩 대신에 DMZ라는 설정을 사용하는 경우가 많은데, DMZ를 사용하게 되면 하나의 컴퓨터로만 모든 포트를 포워딩하는 것과 같습니다. 그렇기 때문에 여러 컴퓨터에서 서비스나 서버를 운영하게 된다면 DMZ는 큰 문제가 될 수 있습니다. 또한 DMZ 설정은 결코 보안에도 좋지가 않기 때문에 반드시 필요한 포트만 찾아서 포워딩하는 것이 안전합니다.

'Network' 카테고리의 다른 글

[TCP&UDP] TCP통신과 UDP 통신 비교 (2)  (0) 2023.11.02
[TCP&UDP] TCP통신과 UDP 통신 비교  (1) 2023.11.02

+ Recent posts