-
[TCP/IP] HTTP 학습에 필요한 IP, ARP, TCP를 짚고 넘어가보자.코딩은 주댕이로/인터넷 2017. 3. 21. 00:17
<손나은>
HTTP를 학습하기 위해서는 배경지식이 꽤 필요하다.
OSI 계층도가 대표적일텐데 그 중에서도 중요도가 높은 IP, ARP, TCP에 대해서 짚어보자.
1. IP (Internet Protocol), ARP (Address Resolution Protocol)
IP는 송신자가 수신자에게 패킷을 전달하는 역할 그 자체를 한다. 즉, IP는 클라이언트에서 서버로의 패킷 전달을 책임진다.
송신자와 수신자간의 거리가 멀기 때문에 라우터의 도움을 받아야한다.
송신자에서 출발한 패킷은 여러 대의 라우터를 거쳐 수신자에게 도착하게 되는 것이다.
송신자는 수신자의 IP주소만 알고 있지, 라우터들의 주소를 알지 못한다. 라우터의 주소를 파악하기 위해 사용되는 것이 바로 ARP이다. ARP는 수신자의 주소를 기반으로 가장 적절한 라우터의 주소를 알려준다.
송신자가 수신자의 주소만 알고 중간 라우터들의 주소는 모르는데 어떻게 패킷이 잘 전달이 될까..? 를 아래 예제로 이해해보면 도움이된다.
쇼핑몰(부산)에서 상품을 회사(경기도 성남시 분당구 불정로 6)로 보낸다고 가정하자.
집배원이 쇼핑몰에서 수거해간 상품은 우선 부산 중앙우편센터(이런게 있는지는 모르겠습니다.)로 가게 된다.
이 집배원은 우리 회사로 가는 길을 알진 못하지만 어쨋건 분당으로 가려면 중앙우편센터로 가야한다는 것만 알고있다.
그러면 중앙우편센터에서는 옥천Hub로 보낸다. 이 때도 마찬가지로 분당으로 가려면 어떻게 가야하는지는 모르지만 어쨋건 분당으로 가는건 옥천Hub를 거쳐간다는 것만 알고 있다.
이런식으로 송신자는 수신자의 IP주소만 알고 HTTP요청을 하지만 중간의 라우터들의 도움을 알게 모르게 받고 있다.
이 때, 사용되는 프로토콜이 IP와 ARP인 것이다.
2. TCP (Transmission Control Protocol)
TCP는 큰 길이의 데이터를 TCP세그먼트로 쪼개어 수신자에게 정확히 전달되었는지를 확인하는 역할을 한다.
IP가 가는 길을 뚫는다면 TCP는 그 뚫은 길이 정확히 수신자에게 향하여 데이터가 잘 도착하였는지를 확인하는 역할인 것이다.
데이터가 잘 도착했는지 확인하는 방법 중 가장 유명한 것은 3-way handshaking이다.
SYN, SYN-ACK, ACK 플래그를 이용하여 통신을 하는 것인데, 아래의 그림을 참고하면 이해가 쉽다.
출처 : 그림으로 배우는 HTTP&Network Basic
'코딩은 주댕이로 > 인터넷' 카테고리의 다른 글
[HTTP] 쿠키를 왜 쓰는거죠? (0) 2017.03.27 [HTTP] HTTP의 method (1) 2017.03.24 [REST API] Query Param vs Path Param 뭐가 더 좋을까? (0) 2017.02.22 네이버 날씨는 어디서 정보를 가져올까? 네이버날씨API는? (1) 2016.05.06 [날씨API] SK플래닛 날씨API사용하기 using Swift in iOS (23) 2016.05.01