반응형

개요

 

네트워크에 대한 이해를 하기 위해서 이번에는 L2 , L3 , L4 계층에 대해서 간단하게 알아보도록 하겠습니다. 

 


데이터 링크 계층 (L2계층)

 

데이터 링크 계층(영어: data link layer)은 장치 간 신호를 전달하는 물리 계층을 이용하여 네트워크 상의 주변 장치들 간 데이터를 전송합니다.

데이터 링크 계층에는 두 가지 주요 기능이 있습니다.

주소 할당: 물리 계층으로부터 받은 신호들이 네트워크 상의 장치에 올바르게 안착할 수 있게 합니다.
오류 감지: 신호가 전달되는 동안 오류가 포함되는지를 감지한다. 오류가 감지되면 데이터 링크 계층은 해당 데이터를 폐기합니다.

 

L2계층에서의 OSI 계층의 패킷 흐름

 

 

각 단계에서 흘러가는 패킷은 다음과 같은 구조를 가집니다.

 


네트워크 계층(L3계층)

 

네트워크 계층(영어: network layer)은 컴퓨터 네트워킹의 7계층 OSI 모형 가운데 제3계층입니다. 네트워크 계층은 중간 라우터를 통한 라우팅을 포함하여 패킷 포워딩을 담당하며, 이에 반해 데이터 링크 계층은 매체 접근 제어, 흐름 제어, 오류 검사를 맡습니다.

네트워크 계층의 기능은 다음과 같습니다. 

연결 모델: 비연결 지향 통신
호스트 주소 할당: 네트워크 내 모든 호스트는 고유 주소를 갖추어야 한다.

 

3 계층인 네트워크 계층은 여러 개의 노드를 거칠 때마다 경로를 찾아주는 역할을 하는 계층입니다.
다양한 길이의 데이터를 네트워크를 통해 전달하며 그 과정에서 라우팅, 흐름 제어, 세그멘테이션(segmentation
/desegmentation), 오류 제어 등을 수행하며, 
네트워크 계층에서 여러 개의 노드를 거쳐 경로를 찾기 위한 주소는 IP주소로 대표됩니다.

 

2 , 3 계층에서의 패킷의 흐름

 

2계층 및 3계층에서의 OSI레벨의 패킷 흐름

 

 

네트워크 계층에서의 패킷 전달 구조 2 ,3 계층에서의 패킷의 흐름 예

 

 

인터넷에 전송하는 패킷의 기본 구조

 

 

네트워크 계층에서의 패킷 전달 구조

 

출발지의 IP와 MAC 주소가 기록됨.

 

목적지 IP 주소 입력

 

목적지 MAC 주소에는 랜을 벗어나기 위한 가장 일차적인 목적지, 즉 게이트웨이의 MAC 주소 입력 (ARP 프로토콜 이용)

 

라우터에서 사용한 2계층 정보를 벗겨냄.

 

다음 라우터까지의 2계층 정보를 패킷에 덧 씌움.

 


전송 계층 (L4계층)

 

4 계층인 전송 계층은 양 끝단(End to end)의 사용자들이 신뢰성 있는 데이터를 주고받을 수 있도록 함으로써, 
상위 계층들이 데이터 전달의 유효성이나 효율성을 신경 쓰지 않도록 해줍니다.
가장 잘 알려진 전송 프로토콜은 TCP(Transmission Control Protocol)
MAC 주소가 네트워크 카드의 고유 식별자이고 IP가 시스템의 주소라면, 포트는 시스템에 도착한 후 패킷이 찾
아갈 응용 프로그램과 통하는 통로 번호라 생각할 수 있습니다.

 

컴퓨터 처리와 전자 통신에서, 전송 계층(Transport layer)은 계층 구조의 네트워크 구성요소와 프로토콜 내에서 송신자와 수신자를 연결하는 통신 서비스를 제공합니다. 전송 계층은 연결 지향 데이터 스트림 지원, 신뢰성, 흐름 제어, 그리고 다중화와 같은 편리한 서비스를 제공합니다.

https://jung-story.tistory.com/12?category=826625

자세한 설명은 링크에 나와있으니 참고하시면 됩니다.

 

TCP/UDP (Transport Service와 Protocols)

이번에는 TCP/UDP의 차이와 각각 무엇인지 배워보도록 하겠습니다. 우선 각각의 차이점을 그림을 통해 확인해 볼 수 있습니다. Transport services와 protocols 양 종단 호스트 사이에서 응용 메시지의 전달을 담..

jung-story.tistory.com

 

 

시스템에서 구동되는 응용 프로그램들은 네트워킹을 하기 위해 자신에게 해당되는 패킷을 식별할 필요가 있습니다.

이때 사용하는 것이 포트이며, 포트는 0번부터 65,535(2¹6 )) 번까지 존재합니다.

 

4계층까지 생각한 패킷의 구조

 

출발지 포트는 운영체제나 응용 프로그램마다 조금씩 다르나 보통 1,025번부터 65,535번 사이의 포트 중에   서 사용하지 않는 임의의 포트를 응용 프로그램별로 할당하여 사용, 웹 서버의 서비스 포트는 보통 80번이니   패킷의 구조가 다음과 같습니다.

 

 

출발지 포트는 시스템에서 임의로 정해짐. 3,000번 대의 임의 포트가 할당되면 다음과 같을 수 있습니다.

 

3 계층과 4 계층의 정보는 netstat -an 명령으로 쉽게 확인할 수 있습니다.

 

netstat -an 명령을 실행한 결과

 

netstat -an 명령을 실행한 결과는 각각 다음의 정보를 담고 있습니다.

 

 

3-웨이 핸드 셰이킹(3-way handshaking)

 

TCP에서 연결 설정 과정

 

1단계 : 두 시스템이 통신을 하기 전에, 클라이언트는 포트가 닫힌 Closed 상태, 서버는 해당 포트로 항상 서비스를 제
공할 수 있는 Listen 상태
2단계 : 처음 클라이언트가 통신을 하고자 하면, 임의의 포트 번호가 클라이언트 프로그램에 할당되고 클라이언트는 서
버에 연결하고 싶다는 의사 표시로 SYN Sent 상태가 됨.
3단계 : 클라이 언 연결 요청을 받은 서버는 SYN Received 상태가 되고 클라이언트에게 연결을 해도 좋다는 의미로 
SYN+ACK 패킷을 보냄.
4단계 : 마지막으로 클라이언트는 연결을 요청한 것에 대한 서버의 응답을 확인했다는 표시로 ACK 패킷을 서버에 보냄.

 

TCP 세션의 종료

 

TCP에서 연결 해제 과정

 

1단계 : 통신을 하는 중에는 클라이언트와 서버 모두 Established 상태
2단계 : 통신을 끊고자 하는 클라이언트가 서버에 FIN 패킷을 보냄. 이때 클라이언트는 Close Wait 상태가 됨.
3단계 : 서버는 클라이언트의 연결 종료 요청을 확인하고 클라이언트에게 응답으로 ACK 패킷을 보냄. 서버도 클라이언
트의 연결을 종료하겠다는 의미로 FIN 패킷을 보내고 Close Wait 상태가 됨.
4단계 : 마지막으로 클라이언트는 연결 종료를 요청한 것에 대한 서버의 응답을 확인했다는 의미로 ACK 패킷을 서버에 보냄.

 


이상으로 간단하게 네트워크 계층에 대해서 알아보았습니다.

 


 

반응형

+ Recent posts