Lan Card | 랜카드
랜카드에서의 데이터 전달과 처리
네트워크의 구성
응용 계층: 애플리케이션 등에서 사용하는 데이터를 송수신하는데 필요하다.
전송 계층: 목적지에 데이터를 정확하게 전달하는데 필요하다.
네트워크 계층: 다른 네트워크에 있는 목적지에 데이터를 전달하는데 필요하다.
데이터 링크 계층: 랜에서 데이터를 송수신하는데 필요하다.
물리 계층: 데이터를 전기 신호로 변환하는데 필요하다.
컴퓨터의 데이터가 전기 신호로 변환되는 과정
웹 브라우저에서 URL을 입력하고 엔터를 누르면 캡슐화가 시작한다. 단 3-way 핸드쉐이크는 이미 되어서 연결이 확립된 가정에서 설명한다.
응용 계층에서는 클라이언트의 요청을 전달하기 위해 통신 대상이 이해할 수 있는 데이터로 변환하고 전송 계층에 전달한다.
그때 응용 계층의 프로토콜을 사용하는데 웹 서버의 html 데이터를 가져와야 하므로 HTTP 프로토콜을 사용한다. 그래서 GET /index.html HTTP/1.1
같은 HTTP 메세지를 보낸다.
전송 계층에서는 해당 데이터가 어떤 애플리케이션에서 사용하는지 판단해야 하므로 출발지 포트와 목적지 포트가 있는 TCP 헤더가 붙어서 세그먼트가 된다.
출발지 포트는 잘 알려진 포트가 아닌 포트 중에서 무작위로 선택된다. 하지만 목적지 포트 번호는 HTTP 이므로 80번이 된다.
다른 네트워크로 데이터를 보내기 때문에 네트워크를 식별할 수 있는 IP 주소가 필요하다. 그래서 출발지 IP 주소와 목적지 IP 주소가 포함된 IP 헤더가 붙어서 IP 패킷이 된다.
이 데이터는 데이터 링크 계층으로 간다.
데이터 링크 계층은 랜에서 데이터를 정상적으로 주고 받기 위해 필요한 계층이다. 데이터를 다른 컴퓨터에서 볼 수 없게 목적지 MAC 주소를 추가하는데 같은 MAC 주소가 아니면 무시하게 되어 있다.
목적지 MAC 주소와 출발지 MAX 주소가 있는 이더넷 헤더와 데이터 전송 중에 오류가 발생했는지 확인하는 트레일러를 추가해서 프레임이 된다.
그리고 물리 계층에서 전기신호로 변환되서 네트워크로 전송된다.
스위치와 라우터에서의 데이터 전달과 처리
스위치에서의 데이터 전달과 처리
스위치 A는 데이터 링크 계층에서 데이터를 전기 신호로 변환하여 라우터 A로 전송합니다.
라우터에서의 데이터 전달과 처리
라우터 A는 데이터 링크 계층에서 이더넷 프레임의 목적지 MAC 주소와 자신의 MAC 주소를 비교합니다.
이때 주소가 같다면 이더넷 헤더와 트레일러를 분리하는 역캡슐화를 수행합니다.
그 다음으로 네트워크 계층에 전달하고 라우팅 테이블과 목적지 IP 주소를 비교합니다.
라우터 A의 라우팅 테이블에서 목적지 IP 주소의 경로를 알 수 있으므로 라우팅을 할 수 있다.
현재 출발지 IP 주소를 라우터의 외부 IP 주소(WAN 주소)로 변경합니다.
그런 다음 데이터 링크 계층으로 전달하여 라우터 B로 보내지도록 이더넷 헤더와 트레일러를 붙인후 물리 계층에서 데이터를 전기 신호로 변환하여 네트워크로 전달합니다.
라우터 B에 도착하면 목적지 MAC 주소와 자신의 MAC 주소를 비교합니다. 같으면 이더넷과 트레일러를 분리하는 역캡슐화를 수행합니다.
그리고 네트워크 계층으로 전달되면 자신의 라우팅 테이블과 목적지 IP 주소를 비교합니다.
목적지 경로를 알수 있으므로 라우팅이 가능하다 그리고 현재 출발지 IP를 라우터 내부 IP 주소(LAN 주소)로 변경합니다.
그런 다음 데이터 링크계층에 전달하여 이더넷 헤더와 트레일러를 붙여 물리 계층에서 전기 신호로 변환하여 네트워크로 전달합니다.
이렇게 라우터 B에서 스위치 B로 전달됩니다.
스위치 B에서는 데이터 링크 계층에서 처리하고 웹 서버에 데이터를 전기 신호로 전달합니다.
웹 서버에서의 데이터 전달과 처리
웹 서버에서의 데이터 전달과 처리
데이터가 전기 신호로 웹 서버에 도착하면 웹 서버는 데이터 링크 계층에서 이더넷 프레임의 목적지 MAC 주소와 자신의 MAC 주소를 비교합니다.
주소가 같으면 이더넷 헤더와 트레일러를 분리하고 네트워크 계층에 전달합니다.
네트워크 계층에서 목적지 IP 주소와 웹 서버의 IP 주소가 같은지 확인합니다.
주소가 같으면 IP 헤더를 분리하고 전송 계층으로 전달합니다.
전송 계층에서는 목적지 포트 번호를 확인하여 TCP 헤더를 분리하여 응용 계층으로 전달합니다.
그러면 웹 서버의 응용 계층에 도착합니다.