[네트워크] 패킷의 생성과 전달

Robert.Yang·2023년 4월 30일
1

Network

목록 보기
15/59
post-thumbnail

이 포스트는 널널한 개발자님 강의를 참조하여 작성한 포스트입니다.

패킷의 생성과 전달

패킷을 택배라고 생각해보자. 철수가 영희한테 책을 보내려고 한다 해보자. 책을 영희한테 보내는게 목표인데 이걸 달성하기 위해서 수단을 정해야한다. 이 수단을 택배로 가정해보자. 제일 먼저 하는게 철수가 책을 준비해야 할 것이다. 그 다으에 박스를 구해서 책을 박스에 집어넣고 테이핑 후 송장을 붙여서 택배 기사 아저씨한테 전달드려야 할 것이다. 그러면 택배기사님은 그 택배를 트럭에 싣고 물류센터에 가서 송장에 적힌 영희네 목적지 주소로 가는 택배트럭에 싣고 영희네 집으로 갈 것이다. 여기서 중요한것은 철수가 택배기사님한테 택배를 전달하는 그 순간 철수 손에 떠나는거고 철수의 개입없이 기사님은 영희네 집에 가서 전달을 한다. 그럼 여기서 궁금한게 목적지 주소는 영희네 집으로 가기위해 필요하지만 출발지 주소와 보내는 사람은 왜 필요할까? 만약 택배기사님이 영희네에 갔는데 아무도 없어서 문 앞에 두실수 있고 아니면 영희네 어머니가 받아서 영희한테 전달을 할 수 있을 것이다. 이때 영희는 누가 보냈는지 출발지 주소와 보내는이를 보고 누가 보냈는지 알 수 있을 것이다.

그럼 이제 네트워크로 보자. 철수 영희를 프로세스로 보자. 그럼 철수라는 프로세스가 책이라는 데이터를 보내기 위해 TCP/IP를 추상화한 파일형태의 인터페이스 즉, 소켓에 write를 할 것이다. 이때 socket에 write라 하지 않고 송신한다고 한다. 그럼 그 data가 TCP를 만다 그 데이터를 payload에 넣고 앞에 TCP header를 붙여서 Segmant화한다. 그리고 그 Segmant를 IP를 만나 IP header를 붙여서 Packet으로 구성하고 Driver로 내려가면 Frame header를 붙여서 NIC에 전달한다. 그럼 그 Frame을 L2 Access Switch, Router를 거쳐서 영희 프로세스한테 가게 된다. 이때 이 과정을 앞서 살펴본 Encapsulation이라고 한다.

profile
모든 것을 즐길 줄 아는 개발자, 양성빈입니다.

0개의 댓글