[Network] 네트워크 패킷

웹은'패킷'을 이용하여 데이터를 주고받는다.

Posted by Sol on January 11, 2021 · 3 mins read

네트워크 패킷

웹 브라우저는 ‘패킷’을 이용하여 데이터를 주고받는다.

‘패킷’은 데이터의 작은 조각이다.

컴퓨터끼리는 데이터를 어떻게 주고받을까?

데이터를 하나의 택배라고 생각했을 때, 컴퓨터는 데이터 택배를 한 번에 전송하지 않는다.

그 이유는,

  • 어떤 데이터 용량이 굉장히 큰 경우, 데이터르 한 번에 전송하면 네트워크 대역폭을 그 데이터가 독점하여 차지하기 때문에 정체현상이 발생할 수 있기 때문이다.

  • 또한, 큰 데이터를 한 번에 보내면 잘못된 데이터가 중간에 끼여있을 경우 전체 데이터 전송이 오류가 나서 처음부터 다시 전송작업을 해야하는 상황이 발생할 수 있지만, 데이터를 쪼개고 순차적으로 발송할 경우 문제가 생겼을 때 문제가 발생한 패킷에서부터 다시 전송작업을 하면 되므로 효율적이기 때문이다.

따라서, 컴퓨터는 데이터를 작은 조각들로 쪼개서 네트워크로 흘려보내는데,

이 작은 조각들을 패킷(Packet)이라 한다.

예를들어 10MB짜리 데이터를 네트워크로 흘려보낼 때,

1MB짜리 10개로 패킷을 나누어 네트워크로 흘려보내는 것이다.

패킷을 택배로 생각한다면, 패킷에는 당연하게도 다음과 같은 정보가 담겨야 한다.

  • 어디서 보내는지 : 송신자 정보
  • 어디로 보내는지 : 수신자 정보
  • 어떻게 보내는지 : 경로 정보
  • 어떤 데이터인지 : 데이터 종류에 대한 정보
  • 등등등…

즉, 패킷은 송신지 주소, 수신자 주소, 데이터 등을 ‘캡슐화’한 작은 데이터 조각이라 할 수 있다.

패킷은 [Header + 데이터(페이로드) + footer]로 구성된다.

헤더에 송신자, 수신자, 경로, 데이터 특징 등의 부가 정보가 담기며, 데이터 부분에 실제 전송하려는 데이터의 조각이 담긴다.

패킷 분석에 흔히 사용되는 툴은 wireshark이며, 해당 툴로 패킷의 내용을 들여다볼 수 있다.

교보문고 사이트를 접속했을 때(https가 아니라 http이다), 다수의 패킷들 중 다음과 같은 패킷 내용을 확인할 수 있다.

image-20210111003128520

맨 위 패킷 내용을 보면,

  • Source : IP주소 211.189.37.30송신자임을 알 수 있다 –> 해당 IP주소는 교보문고 웹사이트 IP주소로, 최초 송신자가 교보문고 웹서버 사이트임을 알 수 있다.

  • Destination : 192.168.123.102수신자임을 알 수 있다 –> 현재 내 컴퓨터의 IPv4 주소를 나타낸다.

  • Protocal : 통신 방법으로 HTTP프로토콜이 사용되었음을 알 수 있다.

  • Length : 해당 패킷의 1443 byte로 표현되었음을 뜻한다 –> 해당 패킷의 크기

  • Info : 해당 패킷이 HTTP 1.1버전(표준)으로 통신되었음을 뜻하며, text/html 데이터를 요청한 통신결과 200 OK 의 response code를 수신하였음을 의미한다.

    참고 : The HTTP 200 OK success status response code indicates that the request has succeeded. A 200 response is cacheable by default.

보다시피 패킷 하나에는 송신자, 수신자, 프로토콜 내용, 데이터 길이, 기타 정보 등이 담겨있다.

따라서,

패킷은 각 네트워크 계층 프로토콜의 조합으로 구성되어있다.

image-20210111003128520

패킷은 위 과정처럼 캡슐화과정을 거쳐서 완성된다.

즉, 패킷은 각각의 네트워크 계층의 프로토콜이 헤더로 붙은 결과물이라고 할 수 있다.

그렇데면 네트워크 계층, 프로토콜이란 무엇일까?

다음 포스팅에서 프로토콜과 네트워크 계층에 대한 내용을 공부해보도록 하자.