※ 질문/내용오류/공유할 내용이 있다면 jinkilee73@gmail.com으로 메일 주세요 :-)
IP를 조금 더 자세하게 들여다 보자. 내가 좋아하는 위키피디아부터 찾아보도록 하자.
출처 http://en.wikipedia.org/wiki/Internet_Protocol
The Internet Protocol (IP) is the principal communications protocol in the Internet protocol suite for relaying datagrams across network boundaries. Its routing function enables internetworking, and essentially establishes the Internet.
IP, as the primary protocol in the Internet layer of the Internet protocol suite, has the task of delivering packets from the source host to the destination host solely based on the IP addresses. For this purpose, IP defines datagram structures that encapsulate the data to be delivered. It also defines addressing methods that are used to label the datagram with source and destination information.
Historically, IP was the connectionless datagram service in the original Transmission Control Program introduced by Vint Cerf and Bob Kahn in 1974; the other being the connection-oriented Transmission Control Protocol (TCP). The Internet protocol suite is therefore often referred to as TCP/IP.
위의 네트워크에서 A와 B가 통신을 하려면 어떤 주소를 이용해서 할까? 제일 만만한건 MAC 주소이다. 그런데 도착지 MAC을 뭘로 정해야할 지 모르겠다. 중간에 거쳐가는 스위치의 MAC 주소를 도착지로하면 스위치까지만 갈꺼 아닌가? 그러면 뭔가 새로운 주소가 필요하다. 아래의 그림을 보자.
IP 주소는 가상의 주소라고 이해하는 것이 가장 정확한 것 같다. 서로 다른 네트워크끼리는 MAC 주소만으로는 도저히 통신이 불가능하기 때문에 가상으로 만들어놓은 주소인 것이다. 위와 같이 두 개의 주소를 가지면 A와 B는 통신은 아래와 같이 가능하다.
위와 같은 개요를 가지고 통신을 하게 된다. 이제부터 A와 B가 통신하는데 필요한 정보들을 깔끔하게 보여주고 실제로 어떻게 통신하는지 자세하게 이야기하겠다.
A가 B에게 패킷을 보낼 때는 우선 A의 OS가 패킷을 만들어야 한다. 예를 들어 B에게 보내야할 내용이 '가나다'라고 하자. 그러면 아래와 같은 패킷이 A의 OS가 만들어낸다.
이 패킷을 보내려니까 누구한테 보내려는지에 대한 정보가 아직 없다. 그래서 그 정보를 OS가 또 붙인다. 이 때 붙여진 것을 IP header라고 한다. 아래와 같다.
자 이제 누구한테 보내야하는지는 안다. 다른 네트워크에 있는 B라는 컴퓨터에 보낼 거다. 그런데 그렇게 가기 위해서는 우선 누구한테 가야하는지는 아직 모른다. 그 정보를 PC A의 누군가가 아래와 같이 붙여준다. 이 때 붙여진 것을 MAC header 라고 한다.
이제 이 패킷은 A를 떠날 수 있다. MAC header를 보면 다음 목적지는 A의 네트워크가 붙어있는 라우터 인터페이스(LAN 카드)의 MAC 주소이다. 그런데 A를 떠날 때 필요한 것이 또 하나 더 있다. preamble이라는 것을 붙여야한다. 이것은 최초로 패킷을 받는 스위치로 하여금 '이 다음부터가 패킷이다'라고 알려주는 것이다.
위와 같이 preamble은 8비트의 0과 1의 연속인데 11로 끝난다고 한다.(확실치 않다) 이 패킷이 제일 처음에 도착하는 A의 스위치에서는 저 8비트를 읽은 후 '아! 이 11 다음부터 MAC 헤더가 오겠구나?'라고 생각하는 것이다.
여기서 중요한 것은 가운데 있는 IP header의 내용은 변하지 않는다는 것이다. 이게 변해버리면 그건 해킹이나 다름없다. 왜냐하면 A가 보내려는 패킷이 A가 모르게 다른 곳으로 전달되어버리는 샘이니까.
출처 : Data Communications and Networking by Behrouz A.Forouzan
지금 제발 바라는 것은, 지금까지 열심히 읽어준 독자들이 위의 그림을 이해할 수 있기를 바라는 것이다. 위에서 나오는 AP는 출발지 도착지 IP를 의미하고 그 왼쪽에 보라색 바탕에 써있는 숫자들은 인터페이스의 MAC 주소를 의미한다. 이렇게 생각해보고 위의 그림을 보면 반드시 이해가 가야한다. 이것을 이해 못 하면 IP를 이해했다고 할 수 없다.
이번 포스팅에서는 IP에서 가장 중요한 이야기를 했다. 다음 포스팅은 IP의 헤더를 이야기해보려고 한다.
※ 패킷이 PC에 도착하기만 하면 뭐하냐? 그 PC의 어떤 프로세스가 데이터를 사용할꺼냐? 이런 질문을 하는 독자들이 있다면 올바른 질문을 하고 있는 것이다. 이것에 대해서는 추후에 TCP/UDP를 다룰 때 이야기를 하려고 한다.
'Computer Networks' 카테고리의 다른 글
[NW] Type of Service (Differentiated Service) (2) | 2013.08.21 |
---|---|
[NW] IP header (5) | 2013.07.30 |
[NW] Internet Protocol (0) | 2013.07.26 |
[NW] Use of ARP (0) | 2013.06.21 |
[NW] Packet structure (0) | 2013.06.16 |