본문 바로가기

공부하자/IT

[네트워크] ICMP, TCP, UDP, Ping

728x90
반응형

ICMP, TCP, UDP, Ping

 

TCP/IP와 관련이 있는 프로토콜로 UDP가 있는데, 이것은 특별한 목적을 위해 TCP 대신에 사용되는 것이다. 라우팅 정보를 교환하기 위해 네트웍 호스트 컴퓨터에 의해 사용되는 프로토콜에는 ICMP, IGP, EGP, 그리고 BGP 등이 있다.

 


ICMP (Internet Control Message Protocol)

ICMP호스트 서버와 인터넷 게이트웨이 사이에서 메시지를 제어하고 에러를 알려주는 프로토콜로서 RFC 792에 정의되어있다. ICMP IP 데이터그램을 사용하지만, 메시지는 TCP/IP 소프트웨어에 의해 처리되며, 응용프로그램 사용자에게 직접 분명하게 보이지는 않는다. 일례로서, ping 명령어는 인터넷 접속을 테스트하기 위해 ICMP를 사용한다.

 

 

ping (Packet Internet Groper)

ping[]은 특정한 인터넷 주소가 있고, 또 그 주소가 요청을 받아들일 수 있는지를 확인해 주는 기본적인 인터넷 프로그램이다. 그러나, ping을 동사형으로 사용하면 ping 유틸리티나 명령어를 사용하는 것을 의미한다. ping은 사용자가 접속하려고 시도하고 있는 호스트가 실제로 운영되고 있는지를 확인하는 진단 목적으로 사용된다. 예를 들어, 만약 한 사용자가 어떤 호스트에 ping을 할 수 없다면 (, ping에 관한 응답이 정상이 아니라면), 그 사용자는 그 호스트에 파일을 보내기 위해 FTP 프로토콜을 사용할 수 없게 된다. ping은 운영되고 있는 호스트가 얼마나 응답을 빠르게 하는지를 확인하는 데에도 사용될 수 있으며, 도메인 이름만을 알고 있는 어떤 사이트의 IP 주소를 알아낼 수도 있다.

그러므로 ping을 대충, 네트웍 상에 있는 상대방 호스트에 대해 "한순간의 주목을 끌기 위한" 또는 그 호스트의 "존재를 확인하기 위한"라는 행위라는 의미로 생각해도 좋을 것이다. ping은 지정된 주소에 하나의 패킷을 보내고 그 응답을 기다림으로써 이루어진다. 이 용어는 다소 부자연스럽기는 하지만, 잠수함에서 수중 음파탐지기의 펄스가 되돌아오는 소리를 나타내는 용어에 끼워 맞춘 것이다.

ping은 메일링 리스트에 있는 모든 사람들에게 ACK를 요청하는 메시지를 보내는 과정에 적용되기도 한다. 이것은 메일을 보내기 전에 모든 주소에 배달이 가능한지를 확인하기 위한 것이다.

 

 

UDP (User Datagram Protocol)

UDP[유디피] IP를 사용하는 네트웍 내에서 컴퓨터들 간에 메시지들이 교환될 때 제한된 서비스만을 제공하는 통신 프로토콜이다. UDPTCP의 대안(代案)이며, IP와 함께 쓰일 때에는 UDP/IP라고 표현하기도 한다. TCP와 마찬가지로 UDP도 한 컴퓨터에서 다른 컴퓨터로 데이터 그램이라고 불리는 실제 데이터 단위를 받기 위해 IP를 사용한다. 그러나 UDP TCP와는 달리, 메시지를 패킷(데이터 그램)으로 나누고, 반대편에서 재조립하는 등의 서비스는 제공하지 않으며, 특히 도착하는 데이터 패킷들의 순서를 제공하지 않는다. 이 말은 UDP를 사용하는 응용프로그램은, 전체 메시지가 올바른 순서로 도착했는지에 대해 확인할 수 있어야 한다는 것을 의미한다. 교환해야 할 데이터가 매우 적은(그러므로 재조립해야 할 메시지도 매우 적은) 네트워크 응용 프로그램들은 처리시간 단축을 위해 TCP 보다 UDP를 더 좋아할 수 있다. 일례로 TFTP TCP 대신에 UDP를 사용한다.

UDP IP 계층에서 제공되지 않는 두 개의 서비스를 제공하는데, 하나는 다른 사용자 요청을 구분하기 위한 포트 번호와, 도착한 데이터의 손상여부를 확인하기 위한 체크 섬 기능이다.

OSI 통신 모델에서, UDP TCP와 마찬가지로 4계층인 트랜스포트 계층에 속한다.

 

UDP사용자 데이터그램 프로토콜(user datagram protocol)의 줄임말이다. 인터넷상에서 서로 정보를 주고받을 때 정보를 보낸다는 신호나 받는다는 신호 절차를 거치지 않고, 보내는 쪽에서 일방적으로 데이터를 전달하는 통신 프로토콜이다. 보내는 쪽에서는 받는 쪽이 데이터를 받았는지 받지 않았는지 확인할 수 없고, 또 확인할 필요도 없도록 만들어진 프로토콜을 말한다.

인터넷 아이콘을 누르는 것과 동시에 자동적으로 중앙컴퓨터 서버와 연결되어 정보를 보내는 쪽과 받는 쪽이 서로 의사소통을 할 수 있도록 설계된 통신 프로토콜인 TCP(transmission control protocol)와 상대되는 개념이다. 예를 들어 이메일을 주고받을 때 '수신 확인'을 통해 상대방이 메일을 읽었는지 읽지 않았는지를 알 수 있는 것은 송수신측이 서로 데이터를 주고받을 수 있기 때문이다.

이처럼 송수신측이 서로 데이터를 주고받는 방식이 TCP이고, 수신측이 데이터를 보든 상관없이 송신측에서 데이터만 전달하면 되는 방식이 UDP이다. UDP는 수신측과 접속 절차를 거치지 않고 송신측에서 일방적으로 데이터를 보내는 방식으로, 이러한 서비스를 무관계(無關係) 서비스라 하고, 이 무관계 서비스의 통신규약 UDP이다.

따라서 UDP TCP와 달리 데이터의 수신에 대한 책임을 지지 않는다. 이는 송신자는 정보를 보냈지만, 정보가 수신자에게 제때에 도착했는지 또는 정보 내용이 서로 뒤바뀌었는지에 관해서 송신자는 상관할 필요가 없다는 말이다. TCP보다 안정성 면에서는 떨어지지만, 속도는 훨씬 빠르다.




 

TCP (Transmission Control Protocol)

TCP[티씨피]는 인터넷상의 컴퓨터들 사이에서 데이터를 메시지의 형태로 보내기 위해 IP와 함께 사용되는 프로토콜이다. IP가 실제로 데이터의 배달처리를 관장하는 동안, TCP는 데이터 패킷을 추적 관리한다 (메시지는 인터넷 내에서 효율적인 라우팅을 하기 위해 여러 개의 작은 조각으로 나뉘어지는데, 이것을 패킷이라고 부른다).

예를 들면, HTML 파일이 웹 서버로부터 사용자에게 보내질 때, 서버 내에 있는 TCP 프로그램 계층은 파일을 여러 개의 패킷들로 나누고, 패킷 번호를 붙인 다음, IP 프로그램 계층으로 보낸다. 각 패킷이 동일한 수신지 주소(IP주소)를 가지고 있더라도, 패킷들은 네트웍의 서로 다른 경로를 통해 전송될 수 있다. 다른 한쪽 편(사용자 컴퓨터 내의 클라이언트 프로그램)에 있는 TCP, 각 패킷들을 재조립하고, 사용자에게 하나의 완전한 파일로 보낼 수 있을 때까지 기다린다.

TCP는 연결지향 프로토콜이라고 알려져 있는데, 이것은 메시지들이 각단의 응용 프로그램들에 의해 교환되는 시간동안 연결이 확립되고 유지되는 것을 의미한다. TCP IP가 처리할 수 있도록 메시지를 여러 개의 패킷들로 확실히 나누고, 반대편에서는 완전한 메시지로 패킷들을 재조립할 책임이 있다. OSI 통신모델에서, TCP 4계층인 트랜스포트 계층에 속한다.

 

 

반응형

'공부하자 > IT' 카테고리의 다른 글

[SQL] 실무에 바로 쓰는 SQL 활용  (0) 2013.05.21
[네트워크] TCP/IP 4계층  (0) 2012.12.28
[네트워크] OSI 7 계층  (7) 2012.12.28
[네트워크] MIME, SMTP, POP  (1) 2012.12.28
[네트워크] ARP, RARP  (0) 2012.12.28
[네트워크] IPv6  (0) 2012.12.28
[최신기술] 웹(Web) 2.0  (0) 2012.12.28
[웹언어] ASP/JSP/PHP 특징 및 장단점  (3) 2012.12.28
[웹언어] 닷넷(.net) 소개 및 장단점  (3) 2012.12.28
[웹언어] JSP 소개 및 장단점  (2) 2012.12.28