반응형
해당 글에서는 TCP/IP 통신의 이해를 돕기 위해 TCP/IP 4 계층에 대해 알아보며, 송신자의 처리과정과 수신자의 처리과정에 대해 이해를 돕기 위해 작성한 글입니다.
1) TCP/IP 통신(Transmission Control Protocol / Internet Protocol)
💡 TCP/IP 통신(Transmission Control Protocol / Internet Protocol)
- 인터넷 네트워크에서 컴퓨터 간의 데이터를 교환하는데 있어서 사용되는 통신 프로토콜을 의미합니다. 해당 통신 프로토콜은 4 계층(응용 계층, 전송 계층, 인터넷 계층, 네트워크 인터페이스 계층)으로 구성되어 있습니다.
- 데이터 전송 측에서는 ‘패킷’으로 분할하여 전송하고, 수신 측해서는 해당 ‘패킷’을 수신하는 ‘패킷 통신규약(Packet Protocol)’중 하나입니다.
💡 TCP(Transmission Control Protocol : 전송제어 프로토콜)
- 전송하는 데이터를 ‘패킷(Packet) 단위로 분할’하는 역할을 수행합니다. 또한 이 패킷이 ‘목적지까지 전송이 되었는지 확인’하는 역할을 수행하며, 해당 과정에서 데이터 손상이나 누락이 된 경우 ‘재 전송’을 요청합니다.
- 목적지까지 전송이 되었는지 확인하는 과정에서 ‘신뢰성’은 높지만 ‘패킷 재전송’ 과정이 필요하기에 UDP/IP 통신에 비해 상대적으로 느립니다
💡 IP (Internet Protocol : 인터넷 프로토콜)
- 전송 계층(TCP, UDP)으로 부터 전달받은 패킷을 ‘올바른 목적지로 전송’하는 역할을 수행합니다. 이를 위해 해당 계층 내에서 헤더에 ‘송신자와 수신자의 IP주소’를 포함하여 다음 계층으로 전달합니다.
[ 더 알아보기 ]
💡 TCP 계층에서 목적지까지 전송이 되었는지 확인하고 재전송을 하는 걸까?
- TCP 내에서는 데이터가 정확하게 목적지에 도착했는지 확인하는 기능이 내장되어 있습니다. 이를 확인하는 방법은 '수신 확인(ACK, Acknowledgement)' 메커니즘을 사용합니다.
- 데이터를 패킷 단위로 분할하여 전송한 후, 패킷이 수신자에게 도착하면 수신자는 '수신 확인' 메시지를 송신자에게 보냅니다. 송신자가 이 메시지를 받으면 해당 패킷이 성공적으로 전송되었다는 것을 알 수 있습니다.
- 만약 송신자가 설정된 시간 내에 '수신 확인' 메시지를 받지 못하면, 해당 패킷이 목적지에 도달하지 못했다고 판단하고 패킷을 재전송합니다. 이러한 방식을 통해 TCP는 목적지까지의 전송이 성공적으로 이루어졌는지 확인할 수 있습니다.
💡 TCP/IP 통신의 경우 사실상 HTTP 통신으로 시작을 하는 게 맞는 거네?
- TCP/IP 통신에서 데이터 전송은 일반적으로 응용 계층에서 시작이 됩니다.
- 이 계층에서는 HTTP, FTP 등의 프로토콜이 사용되며 사용자의 데이터가 생성됩니다. 이렇게 생성된 데이터는 TCP/IP의 계층을 차례로 거치면서 패킷으로 분할되고 IP 주소가 부여되며, 최종적으로 네트워크를 통해 송신됩니다.
1. TCP/IP 4 계층
💡 TCP/IP 4 계층
- 인터넷 네트워크에서 컴퓨터 간의 데이터를 교환하는 데 사용되는 통신 프로토콜입니다.
계층 | 설명 | 예시 |
응용 계층 (Application Layer) |
사용자에게 제공되는 서비스를 처리하며, 프로토콜의 사용을 결정하는 역할을 합니다. | HTTP, FTP, SMTP, DNS |
전송 계층 (Transport Layer) |
패킷을 순서대로 조립하고, 오류를 검출하며, 패킷을 전송하는 역할을 합니다. | TCP, UDP |
인터넷 계층 (Internet Layer) |
패킷의 경로를 결정하고, 패킷을 목적지로 전송하는 역할을 합니다. | IP(Internet Protocol) |
네트워크 인터페이스 계층 (Network Interface Layer) |
물리적인 네트워크와 연결되며, 패킷을 전송하는 역할을 합니다. | 이더넷(Ethernet), Wi-Fi |
2. TCP/IP 4 계층 : 송신 측 관점(Client)
💡 TCP/IP 4계층 : 송신 측 관점(Client)
1. 응용 계층(=애플리케이션 계층) : HTTP, FTP
- 사용자의 ‘데이터가 생성되는 계층’이며, 애플리케이션 내에서 HTTP, FTP, SMTP 등의 프로토콜을 이용하여 ‘데이터 송신’하는 계층을 의미합니다.
- 다음 계층으로 HTTP, FTP, DNS 등의 프로토콜 헤더를 추가되어 다음 계층으로 전달됩니다.
2. 전송 계층(=트랜스포트 계층) : TCP, UDP
- 응용 계층으로부터 전달받은 데이터를 ‘패킷으로 분할’하는 계층이며, TCP 또는 UDP 프로토콜이 작동하는 계층을 의미합니다.
- 다음 계층으로 TCP나 UDP의 헤더를 추가되어 다음 계층으로 전달됩니다.
3. 네트워크 계층(=인터넷 계층) : IP
- 전송 계층으로부터 전달받은 ‘패킷에 대해 주소를 부여’하여 최종 목적지를 지정하는 계층이며, IP 프로토콜이 작동하는 계층을 의미합니다.
- 소스 IP 주소, 목적지 IP 주소, TTL(Time To Live), 프로토콜 정보 정보가 추가되어 다음 계층으로 전달됩니다.
4. 링크 계층 : Ethernet
- ‘네트워크 장비 간의 데이터 전송’과 네트워크 오류 감지 및 수정 역할을 수행하는 계층이며, 패킷은 물리적 네트워크인 ‘이더넷’을 통해 작동하는 계층을 의미합니다. 또한 물리적 주소(MAC 주소)를 사용하여 통신을 합니다.
- MAC 주소를 포함한 이더넷 헤더 정보가 추가되어 송신 측으로 전달이 됩니다.
3. TCP/IP 4 계층 : 수신 측 관점(Server)
💡 TCP/IP 4계층 : 수신 측 관점(Server)
1. 링크 계층 : Ethernet
- 패킷이 물리적 네트워크인 '이더넷'을 통해 도착하며, 네트워크 장비 간의 데이터 전송과 네트워크 오류 감지 및 수정 역할을 수행하며, 패킷의 MAC 주소를 확인하여 해당 패킷이 올바른 목적지에 도착했는지 확인합니다.
- 전달받은 헤더 내에서 이더넷 헤더를 제거합니다.
2. 네트워크 계층(=인터넷 계층) : IP
- 패킷은 IP 프로토콜에 의해 처리되며, 패킷의 소스 IP 주소, 목적지 IP 주소, TTL(Time To Live), 프로토콜 정보 등을 확인합니다.
- 전달받은 헤더 내에서 IP 헤더를 제거합니다.
3. 전송 계층(= 트랜스포트 계층)
- 패킷은 TCP나 UDP 프로토콜에 의해 처리되며, 패킷의 순서를 확인하고 필요한 경우 ‘재조립’합니다.
- 전달받은 헤더 내에서 TCP나 UDP 헤더를 제거합니다.
4. 응용 계층(= 애플리케이션 계층)
- 패킷은 HTTP, FTP, DNS 등의 애플리케이션 프로토콜에 의해 처리됩니다. 이 단계에서 최종적으로 데이터가 사용자에게 제공됩니다.
- 전달받은 HTTP, FTP, DNS 등의 프로토콜 헤더를 제거합니다.
[ 더 알아보기]
💡 수신 측에서 각각 헤더를 제거하는 이유는 뭘까?
- 정보를 수신하는 계층에서 헤더를 제거하는 처리가 수행됩니다. 이 헤더를 제거하는 이유는 더 이상 필요하지 않기 때문입니다. 따라서 수신층에서는 각 계층에서 처리를 완료한 헤더를 제거하게 됩니다.
- 이렇게 각 계층에서 헤더를 제거하면, 원래의 데이터만이 남아 최종적으로 사용자에게 제공될 수 있습니다.
💡 TCP(Transmission Control Protocol)와 UDP(User Datagram Protocol)는 무슨 차이가 있을까?
- 서로 간에는 모두 인터넷 프로토콜의 일부로 데이터를 전송하는 방식에 차이가 있습니다.
- TCP는 연결 지향적인 프로토콜로, 데이터를 전송하기 전에 송신자와 수신자 사이에 연결을 설정합니다. 그 후에 데이터를 패킷으로 나누어 전송하고, 각 패킷이 수신자에게 정확하게 도착했는지 확인합니다. 이 방식은 신뢰성이 높지만, 패킷 확인과 재전송 과정이 필요하기 때문에 UDP보다 상대적으로 느릴 수 있습니다.
- 반면에 UDP는 비연결형 프로토콜로, 패킷을 수신자에게 보내고 패킷이 정확하게 도착했는지 확인하지 않습니다. 이 방식은 TCP보다 빠르지만, 패킷의 순서나 손실에 대한 보장이 없어 신뢰성이 낮습니다. 그래서 UDP는 실시간 스트리밍, VoIP, 온라인 게임 등에서 주로 사용됩니다.
오늘도 감사합니다😀
반응형
'공통 > 데이터 통신' 카테고리의 다른 글
[데이터 통신] 소켓 통신(Socket Communication) 이해하기 : 송신-수신 통신 과정 (0) | 2024.06.27 |
---|---|
[데이터 통신] HTTP, HTTPS(SSL/TLS) 통신 이해하기 : 클라이언트-서버 통신 과정 (0) | 2024.06.27 |