본문 바로가기
IT, PC/AP(HotSpot)

소켓(socket), 포트(port), TCP, UDP 정의

by Chan_찬 2011. 1. 29.
728x90

Socket

  소프트웨어가 서로 연결하려면 소켓(Socket) 연결이 필요합니다. Socket은 두 시스템 사이의 네트워크 연결을 나타내는 객체입니다. 우선 적으로 두 소프트웨어가 연결이 되려면 가장 중요한 것은 두 소프트웨어가 상대방과 통신하는 방법, 즉 상대방에게 비트를 보내는 방법을 알고 있다는 점입니다. 직접적으로 연결을 해주는 저수준단계(수준이 낮다는 말이 아니라 하드웨어계층(이더넷 케이블, 네트워크 장치)은 운영체제별로 들어있는 소프트웨어와 자바 네트워킹 API에서 처리해주기 때문에 우리는 고수준단계(장치를 불러오는 직접적인 명령) 만을 구현하면 됩니다.

 

  다시 말해 소켓 연결이란 두 시스템 간의 정보를 연결한다는 것을 의미합니다. 그 정보에는 네트워크 주소(IP주소)와 포트 번호도 포함되어 있습니다. 이것들을 통해 소켓을 개설 할 수 있습니다.

 

Port

  IP주소로 Socket이 연결되면 해당 컴퓨터끼리 연결이 됩니다. 그러나 하나의 컴퓨터 안에서도 인터넷을 사용하는 여러 프로세스가 동시에 실행되고 있을 수 있습니다. 쉽게 말하자면 IP 주소는 건물의 주소이고 포트는 각 방의 호실인 셈입니다. 이렇게 컴퓨터끼리 연결하여 프로세스를 수행하려면 두 컴퓨터의 건물주소인 IP주소와 방 번호인 Port번호를 찾아 가야합니다.

  프로세스가 사용하는 포트 번호는 특별히 제한이 있는 것은 아니지만, 보통 1 ~ 1024(Well known port)번 까지는 시스템이 주로사용하기 때문에 1025 ~ 65,535 번 사이의 포트를 사용하는 것이 좋습니다.

 

 

TCP(Transmission Control Protocol)

  TCP통신은 전화와 같은 방식으로 동작합니다. 상대방의 IP 주소와 Port번호를 알고 있어야 연결을 요청할 수 있고, 연결을 시도했을 때 상대방이 응답을 받아주지 않으면 계속적으로 연결 요청을 하게 됩니다. 전화는 한번 연결되면 계속해서 상대방에게 음성을 전달할 수 있는 것처럼 TCP 통신에서도 한번 연결이 되면 계속적으로 소켓을 통해서 데이터를 주고받을 수 있습니다.

  그리고 서로 주거니 받거니 할 수 있는 양방향 통신의 성격을 갖습니다. 또한 상대방에게 데이터를 보냈을 경우 확인 절차도 거치게 됩니다. 만약 통화도중 잘 못 들었다면 "다시 말해주세요" 라고 하는 것처럼 TCP 통신에서도 전송도중 받지 못한 패킷을 송신측에 다시 요청하는 메커니즘(Mechanism)을 가지고 있습니다.

 

 

UDP(User Datagram Protocol)

  UDP통신은 편지에 비유할 수 있습니다. 편지지에 내용을 기록하고, 편지봉투에 상대방의 주소와 자신의 주소를 적은 후 우체통에 넣으면 편지는 주소에 도착합니다. 편지가 목적지에 도착해서 확인하기 전까지는 정상적으로 도착했는지 알 수 있는 방법이 없습니다. 이러한 방식이 UDP통신 방식입니다. 보내는 쪽에서는 패킷에 데이터 담은 후 상대방의 IP주소와 자신의 IP주소를 기록하고 Socket을 통해 보내고 패킷이 도착했는지에 대해서는 상관하지 않고 단지 보냈다는 사실만 기억하고 있습니다. 만약 받는 쪽에서는 패킷이 잘못되거나 받지 않았을 경우에 재요청을 해야합니다. UDP 통신 자체는 상대방과 연결되어 있는 개념이 아닙니다. 자신이 소켓을 개설하고 보내고 싶은 포트에 데이터를 싫어 랜카드를 통해 보내 버리는 개념입니다. 그렇기 때문에 편지를 우체통에 넣어버리는 개념과 흡사한 것입니다.

 

  이런 두 통신 방법에는 장단점이 있는데 TCP 통신은 데이터를 주고받을 때 데이터의 송수신을 확인 하는 메커니즘을 가지고 있습니다. 이런 방법으로 정확한 통신을 할 수 있는 반면 지속적인 확인 절차로 인해 속도 면에서는 느립니다. 하지만 UDP는 이러한 확인 절차를 거치지 않고 계속적으로 데이터를 보내기만 하고 받기만 하기 때문에 훨씬 빠른 속도로 처리될 수 는 있으나 안정적이지는 않습니다. 

[출처] Socket, Port, TCP, UDP|작성자 titan21

 

TCP와 UDP 모두 네트워크 에서 사용되는 전송 방법입니다.

 

두 프로토콜 모두 OSI 7계층 중에 4계층에 속하며,

 

TCP( Trasmission Control Protocol ) 는 신뢰성을 보장 하는 프로토콜로서, Seq No.와 Ack No.를 이용하여 중간 유실이나 흐름 장애시 재전송을 하는 프로토콜 입니다. 패킷을 순서를 확인하여 재조립 하여 사용자에게 보여주며, 중간 유실이 된 번호를 확인시 해당 번호를 재 전송 해달라는 응답 메시지를 보냅니다.

 

 

UDP( User Datagram Protocl )는 TCP와 마찬가지로 data의 전송을 위한 프로토콜 이지만.. 신뢰성을 보장 하지는 않습니다. TCP와 다른 점은 UDP는 중간에 패킷이 유실이나 변조가 되어도 재전송을 하지 않습니다.

일방적으로 보내는 것으로 생각 하시면 됩니다. 예를 들면... 웹 사이트에서 실시간 TV시청의 경우가 UDP를 많이 사용 합니다. 물론 상대방의 응답을 기다리지 않으므로 그만큼 속도는 더 빠르겠죠.

 

 

인터넷 사용량은 TCP UDP로 전송된 모든 데이터를 말하는 것입니다. 또한 두개다 사용자 분께서 사용하는 프로그램에서 발생 되는 것이죠.

728x90
728x90

'IT, PC > AP(HotSpot)' 카테고리의 다른 글

IEEE 802.11 전송방식 표준  (0) 2011.02.07
Buy me a coffeeBuy me a coffee

댓글