💡 4/12 Socket
📍 TCP/IP
TCP/IP는 컴퓨터 네트워크에서 데이터 통신을 위한 프로토콜 스택으로, 네트워크 간의 데이터 교환을 가능하게 하는 중요한 기술
- 데이터를 분할하여 보냄.
- 정확한 전송을 보장하며 데이터의 경로를 지정하는 역할.
TCP(Transmission Control Protocol)
TCP는 데이터를 신뢰성 있게 전송하기 위한 프로토콜
- 신뢰성 : 데이터의 손실이나 손상을 최소화하고, 데이터의 순서를 보장
- 연결 지향 : 데이터를 주고받기 전에 송신자와 수신자 간에 연결
- 흐름 제어 : 데이터의 흐름을 제어하여 수신자가 처리할 수 있는 속도에 맞춰 데이터를 전송
- 혼잡 제어 : 네트워크의 혼잡 상태를 감지하고 조절하여 네트워크 성능을 유지
IP(Internet Protocol)
인터넷상에서 데이터를 주고받기 위한 통신 규약(약속)
- 패킷 기반 : 데이터를 작은 패킷 단위로 나누어 전송하고, 각 패킷은 목적지 주소와 출발지 주소 정보를 포함
- 비연결성 : 패킷은 독립적으로 처리되며, 수신자와의 직접적인 연결이 필요하지 않음.
- 라우팅 : 각 라우터가 패킷의 경로를 결정하여 목적지까지 전달
- IP 주소 : IP는 각 컴퓨터를 식별하기 위한 IP 주소를 사용
TCP/IP 4계층
이 모델은 전송 계층에서 TCP(Transmission Control Protocol)와 인터넷 계층에서 IP(Internet Protocol)를 주요 프로토콜로 사용하기 때문에 TCP/IP라는 이름이 붙었다.
![](https://velog.velcdn.com/images/purple11_11/post/d8fb76d8-05f2-4176-90ff-5ad17f2f8066/image.png)
✅ Network Interface Layer (or Network Access Layer)
OSI 7계층
의 물리계층과 데이터 링크 계층에 해당
- 이 계층은 물리적인 네트워크와 상호 작용하며, 데이터를 전기 신호로 변환하거나 광 신호로 변환하여 전송
- 데이터를 프레임으로 나누어 전송하고 프레임을 수신하여 물리적인 신호로 변환하는 역할을 수행
- 수신된 프레임에서 오류를 검출
- MAC (Media Access Control) 주소를 관리
- Ethernet이나 Wi-Fi 같은 기술이 이 계층에 해당
✅ Internet Layer
OSI 7계층
의 네트워크 계층에 해당
- 이 계층은 데이터 패킷의 라우팅과 논리적인 주소 지정을 담당
- IP(Internet Protocol)가 이 계층에서 작동하며, 패킷의 출발지와 목적지 IP 주소를 사용하여 라우팅을 수행
- IP 주소와 관련된 서비스인 ARP (Address Resolution Protocol)와 같은 프로토콜도 이 계층에서 동작
✅ Transport Layer
OSI 7계층
의 전송 계층에 해당
- 이 계층은 데이터의 신뢰성과 흐름 제어를 관리
- TCP (Transmission Control Protocol)와 UDP (User Datagram Protocol)가 이 계층에서 작동
UDP(User Datagram Protocol)
- UDP는 비연결성 프로토콜로, 데이터의 신뢰성은 낮지만 속도가 빠르고 간편
- 데이터그램 단위로 데이터를 전송하며, 순서 보장 및 데이터 신뢰성은 보장되지 않음.
- 데이터 전송에 관련된 작업이 단순
- 흐름 제어나 혼잡 제어 메커니즘이 없어서 오버헤드가 적음
- VOIP, 스트리밍, 온라인 게임 등에서 데이터 전송이 빈번하게 발생하는 경우에 사용됩니다.
✅ Application Layer
OSI 7계층
의 세션 계층, 표현 계층, 응용 계층에 해당
- 최종 사용자에게 서비스를 제공하기 위한 응용 프로그램과 사용자 인터페이스가 이 계층에 위치
- 이 계층은 다양한 프로토콜을 포함하며, HTTP, FTP, SMTP, POP3, IMAP, DNS 등의 프로토콜이 이 계층에서 동작
- 각 프로토콜은 특정한 응용 서비스를 제공하기 위한 목적으로 사용
왜 TCP/IP를 학습했을까?
Socket 프로그래밍은 네트워크 통신을 가능하게 하는 기본적인 방법 중 하나로, 인터넷 또는 LAN에서 데이터를 교환하기 위해 사용된다.
TCP/IP는 인터넷의 핵심 프로토콜로, 각기 다른 네트워크 환경에서도 통신할 수 있게 해주는 표준화된 방법을 제공한다.
이에 따라 네트워크의 기본적인 작동 원리를 이해하고, Socket 프로그래밍 시 애플리케이션 요구 사항(신뢰성, 속도 등)에 맞게 TCP 또는 UDP 중 적절한 프로토콜이 무엇인지 결정할 수 있도록 위의 내용을 학습했다.