인프런 커뮤니티 질문&답변

asdf5184님의 프로필 이미지
asdf5184

작성한 질문수

네트워크, 그림으로 이해하자

네트워크 전반적인 과정에 대해 문의드립니다.

작성

·

235

1

안녕하세요. 강의가 큰 도움이 되었습니다.

강의를 다 듣고 네트워크의 전반적인 부분을 한번에 이해해보려고 하는데, 어려운 점이 있어서 문의드립니다.

클라이언트(웹브라우저)가 HTTP 메서드를 통해서 서버에 요청하는 경우, 어떻게 네트워크를 타는지 과정을 알아보고 있습니다. 일부는 웹 서칭을 했고, 일부는 전공 강의를 참고했습니다. 정리해보면 아래의 8단계를 거치는 것 같았습니다.

  1. 브라우저가 직접 메시지를 네트워크에 보낼 수는 없고, 운영체제에 의뢰해서 메시지를 전달한다.

  2. OS의 프로토콜 스택에서 메시지를 받고 수신처 주소 등의 제어정보를 덧붙인다.

  3. 패킷을 LAN 어댑터(=랜카드)에 넘긴다.

  4. LAN 어댑터는 다음 Hop의 MAC주소를 붙인 프레임을 전기신호로 변환시킨다.

  5. 신호를 LAN 케이블에 송출시킨다.

  6. 전달된 프레임이 스위치를 거쳐서 라우터에 도착한다.

  7. 인터넷의 여러 라우터를 거쳐서 목적지 네트워크(웹 서버측의 랜)에 도달한다.

  8. 최종적으로 패킷이 물리적인 웹 서버에 도착한다. 웹 서버의 프로토콜 스택은 패킷을 추출하여 메시지를 복원하고 웹 서버 애플리케이션에 넘긴다.

  9. 메시지를 받은 웹 서버 애플리케이션은 요청 메시지에 따른 데이터를 응답 메시지에 넣어 클라이언트로 회송한다.

     

몇 가지 질문이 있습니다.

Q1) 1번에서 프로토콜 스택에서 '수신처 주소'를 덧붙인다고 했는데, 이는 IP 주소를 붙여서 IP 패킷을 만든다는 의미인가요? 아니면 MAC 주소를 말한다는 것인가요?

Q2) LAN 어댑터와 랜카드가 같은 것인가요?

Q3) 랜카드가 프레임을 전기신호로 변환하는 것은 이해하였는데, 랜카드에서 '다음 Hop의 MAC 주소'를 붙여서 프레임을 만드나요? 그리고 랜카드는 다음 Hop이 무엇인지, 다음 Hop의 MAC주소는 무엇인지 어떻게 알 수 있나요? ARP로 MAC주소를 받아온다고 배웠는데, ARP가 네트워크 계층에 속하면 라우터에서 MAC주소를 알아낼 수 있는거 아닌가요...? 랜카드에서는 같은 네트워크에 연결된 장치들의 MAC주소를 어떻게 알고있나요?

Q4) 데이터가 -> 전기신호로 변환되는 것은 보내는 사람의 PC에서만, 전기신호가 -> 데이터로 변환되는 것은 받는 사람의 PC에서만 이뤄지는 것인가요? 그럼 라우터와 라우터 사이에서도 전기 신호로 통신해야 할텐데, 그 라우터들은 전기 신호의 의미(IP 주소 등)을 어떻게 이해하나요?

Q5) 위의 과정에서 잘못된 점이 있다면 말씀해주시면 정말 감사하겠습니다!

감사합니다.

답변 1

0

예술하는 개발자님의 프로필 이미지
예술하는 개발자
지식공유자

Q1) 1번에서 프로토콜 스택에서 '수신처 주소'를 덧붙인다고 했는데, 이는 IP 주소를 붙여서 IP 패킷을 만든다는 의미인가요? 아니면 MAC 주소를 말한다는 것인가요?

일부는 웹 서칭과, 전공 강의를 참고하셨다는 것으로 보아 참고하셨을 링크가 궁금하여 저도 검색해보았는데 해당 링크를 참고해보신게 맞으실까요~?

https://wooooooak.github.io/web/2018/11/26/%EC%9B%B9%EC%9C%BC%EB%A1%9C%EB%B3%B4%EB%8A%94%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC(2)/

네트워크 계층에서는 목적지 mac주소를 모르기 때문에 목적지 IP주소를 통해 목적지 mac주소를 알아내는 ARP프로토콜 또한 기능을 합니다. arp헤더는 출발지/목적지 mac주소가 포함되어 있는데, ARP헤더가 프레임에 캡슐화되기 때문에 IP주소가 포함되는 것도 맞는 말이며, MAC주소가 포함되는 것도 맞는 말이라고 볼 수 있습니다.

이더넷 프레임은 [프리앰블, SFD, 출발지mac주소, 목적지 mac주소, 그 외 데이터, 트레일러 ] 등의 필드로 구성되어 있습니다. 이 필드 중 출발지/목적지 mac주소도 arp를 통해 알아낼 수 있기에 IP의 영역에 해당한다고 볼 수 있습니다. 그리고 프리앰블과 SFD, 트레일러는 랜 어댑터를 통해 담당하는 영역입니다.
(https://velog.io/@tastestar/2.-TCPIP
이는 위 링크의 (5) IP 패킷 송, 수신 동작 부분을 참고하시면 이해가 수월하실 겁니다.)


제 강의의 경우 OSI 7계층을 중심으로 캡슐화/역캡슐화의 과정도 7개의 계층을 중심으로 설명하기에 이더넷 헤더가 mac주소를 포함하지만,
위 두 링크와 같은 경우 tcp/ip, 드라이버와 하드웨어를 중심으로 웹브라우저와의 통신을 설명하기에
mac헤더와 프리앰블 그 외 필드를 따로 구분합니다.
캡슐화와 역캡슐화시 이더넷 헤더의 구분을 어디까지 할 것인가-라는 부분이 조금 차이가 있어 혼동이 올 수 있는 부분 같습니다 : )

 

Q2) LAN 어댑터와 랜카드가 같은 것인가요?

랜 카드 자체는 네트워크 인터페이스 컨트롤러(NIC), 네트워크 어댑터 등의 용어 등으로 불리는데
랜 카드도 보통 노트북에 메인보드에 내장되어 있는 내장형 랜 카드의 형태도 있고(그냥 노트북 옆면 구멍이라고 생각하시면 됩니다), USB형 랜 카드도 있습니다.
시중에서 판매하는 랜 어댑터의 경우 어댑터라는 명칭에 알맞게 다른 기기장치끼리 연결하여 결합할 수 있도록 하는 기능에 초점을 맞추어 판매하며, 이것이 usb형 랜 카드라고 볼 수 있습니다.

완전히 다르지는 않은 랜 카드의 한 종류가 랜 어댑터라고 볼 수 있을 것 같습니다.
만약 시중의 서적이나 강의 혹은 블로그 서적에서 랜 어댑터나 랜 카드에 관하여 혼동이 오신다면
같은 의미로 생각하시면 될 것 같습니다 : )

 

Q3) 랜카드가 프레임을 전기신호로 변환하는 것은 이해하였는데, 랜카드에서 '다음 Hop의 MAC 주소'를 붙여서 프레임을 만드나요? 그리고 랜카드는 다음 Hop이 무엇인지, 다음 Hop의 MAC주소는 무엇인지 어떻게 알 수 있나요? ARP로 MAC주소를 받아온다고 배웠는데, ARP가 네트워크 계층에 속하면 라우터에서 MAC주소를 알아낼 수 있는거 아닌가요...? 랜카드에서는 같은 네트워크에 연결된 장치들의 MAC주소를 어떻게 알고있나요?

랜카드에서 전기신호로 변환할 데이터의 단위인 프레임은 이더넷 헤더가 포함되어 있고, 그 이더넷 헤더에는 원래 기존의 출발지 mac주소와 목적지 mac주소의 정보가 포함되어 있습니다.

즉 프레임 자체에 '다음 Hop의 mac주소'가 포함되어 있습니다. 그렇기에 랜카드에서 arp와 같은 프로토콜을 통해 따로 알아낼 필요가 없습니다. 왜냐하면 네트워크 계층에서 arp를 통해 알아내었으니까요.

반대로 네트워크 계층은 이더넷 헤더(출발지/도착지 mac주소 정보)가 포함되어 있지 않은 데이터 단위인 패킷이 지나가는 계층이기 때문에 ARP라는 주소 결정 프로토콜을 통해서 mac주소를 알아내어 이더넷 헤더를 붙여 캡슐화하여 프레임을 만드는 과정이 필요합니다

다음 Hop의 mac주소를 '알아내는 것'은 arp의 역할,
알아낸 mac주소를 '확인+캡슐화+전기 신호로 변환'하는 것이 데이터링크+물리 계층의 역할이라고 구분해주시면 좋겠습니다 : )

 

Q4) 데이터가 -> 전기신호로 변환되는 것은 보내는 사람의 PC에서만, 전기신호가 -> 데이터로 변환되는 것은 받는 사람의 PC에서만 이뤄지는 것인가요? 그럼 라우터와 라우터 사이에서도 전기 신호로 통신해야 할텐데, 그 라우터들은 전기 신호의 의미(IP 주소 등)을 어떻게 이해하나요?

 

데이터 전송은 일종의 상호작용이기 때문에 일방향으로만 이루어지지 않고
송신자가 수신자가 될 수도 있고, 수신자가 송신자가 될 수도 있다고 이해하시면 되겠습니다.

image

예를 들어 라우터1에서 라우터2까지 전기 신호로 통신한다고 가정했을 때, 캡슐화와 역캡슐화의 과정 없이 바로 거쳐가지 않고

라우터간의 데이터 전송 시에도
라우터1(송신자)에서 네트워크 계층 -> 물리 계층까지 캡슐화의 과정을 거친 후 전기 신호로 변환되어
라우터2(수신자)는 물리 계층 -> 네트워크 계층까지 역캡슐화를 통해 데이터의 정보를 읽을 수 있다고 보시면 됩니다.

이렇게 기기간 장치끼리 유선으로 연결되어 있을 경우 전기 신호로 변환하는 과정이 필요하기에
데이터는 각 계층을 계속해서 왔다갔다 하면서 목적지까지 도달합니다. 스위치도 마찬가지입니다 ! ^^


꼼꼼하게 작성해주셔서 제작자의 입장에서 감동스럽습니다.
차후 강의도 강의 내용을 섬세하게 이해하기 쉬울 수 있도록 만들어야 겠다는 생각을 하게 됩니다.
무엇보다 asdf5184님께서 맨처음 말씀해주셨던 것처럼
강의 내용이 큰 도움이 되었다니 다행이고, 저도 감사합니다.
좋은 하루 되세요 ! ^~^

첨부하신 이미지는 router 파트에서 확인할 수 있을까요?

예술하는 개발자님의 프로필 이미지
예술하는 개발자
지식공유자

안녕하세요, 제하님! 해당 이미지는 질문 작성자님이 조금 더 쉽게 이해하실 수 있도록 답변을 작성하기 위해 따로 제작한 이미지입니다. 감사합니다 :)

asdf5184님의 프로필 이미지
asdf5184

작성한 질문수

질문하기