> 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 |

