카테고리 없음

[ 네트워크 ] OSI 7계층

KimBangg 2021. 8. 11. 12:46

응용 계층 ( Application layer )

 

- 데이터를 받는 "엔드 시스템"이 이해 할 수 있는 방식으로 데이터 형식으로 변환합니다.

- 대표적인 프로토콜로는 [ HTTP, SMTP, FTP ] 등이 존재합니다.

- 대표적인 어플리케이션으로는 [ 크롬 ,카카오톡, 줌  ] 등이 있습니다.

 

 

* 카카오톡 메세지를 받는 상황을 예시로 들어 보겠습니다.

 

1) 친구가 저에게 메세지를 보냈다고 가정하면, 서버에는 새로운 대화 메세지가 오게 될 것입니다.

2) 서버는 저에게 "신규 메세지"를 보내 주어야 하는데, 이 때 상태를 파악 할 수 있도록 데이터에 [ status code : 500 ] 와 같은 정보들을 붙여서 보내줍니다.

3) 여러 계층을 거쳐서, 제 응용계층으로 오게 되면 추가 정보를 파악하고, 메세지와 분리합니다.

 

 

 

 

프레젠테이션 계층 ( Presentation Layer )

 

프레젠테이션 계층에서는 [ 데이터의 변환 -> 압축 -> 암호화 ] 기능을 수행합니다.

 

이렇게 데이터를 암호화 하는 이유는, 통신을 하는 기기마다 다른 인코딩 방법을 채택 할 수 있기 때문입니다bb.

 

 

 

 

세션 계층 ( Session Layer )

 

세션 계층에서는 [ 세션 관리 및 복구 ] 기능을 수행합니다.

 

* 잠시만 복구는 어떻게 하나요?

 

세션 계층에서는 임의로 체크포인트를 설정합니다.

가령 100mb 데이터를 다른 기기로 전송 할 때, 체크포인트를 5mb로 설정 했다고 가정을 해보겠습니다.

47mb 쯤 전송을 하던 도중, 커넥션이 끊겼을 때 처음부터 시작하는 것이 아닌 45mb에서부터 다시 전송을 시작합니다.

 

 

 

전송 계층 ( Transport Layer )

전송 계층은 [ 세그멘테이션, 오류 / 흐름 제어, Port  ] 기능을 수행합니다.

대표적인 프로토콜로는 [ TCP / UDP ] 가 있습니다.  

 

 

[1] 세그멘테이션 ( Segmentation )

 

세그멘테이션은 한국말로 '분리' 라는 의미를 가지고 있는데요. 실제로도 이 뜻처럼, 위에서 받은 데이터를 특정 사이즈로 나누는 기능을 수행 합니다.

 

그럴 경우, 완전한 전송이 되지 않더라도 일부 일부를 볼 수 있게 할 수 있고 데이터 손실률도 줄일 수 있다는 장점이 생깁니다. 

 

  

[2] 흐름 제어

 

흐름 제어는 두 컴퓨터 간의 전송 속도를 맞추어 주는 것을 의미합니다.

 

예를 들어서 [A] 컴퓨터는 50mb 속도로 송/수신 가능하고, [B] 컴퓨터는 20mb 로 송/수신이 가능하다고 해보겠습니다.

그럴 경우 A에서는 B에게는 50mb의 속도로 보낸다고 하더라도, B에서는 이 속도를 온전히 처리 할 수 없기에 속도를 20mb로 맞춰줍니다.

 

  

[3] 오류제어

 

오류제어는 오류가 생긴 데이터를 다시 보내주는 것을 의미합니다. 

  

 

[4] Port

 

Port 번호는 하나의 컴퓨터 안에서 수행되는 프로세스들이 가지는 고유한 번호를 의미하는데요.

프레젠테이션 계층에서는 이 번호를 통해, 어떤 작업에게 일을 할당하고 요청 받을지 결정을 하게 됩니다. 

데이터 + 출발지와 도착지의 Port +  TCP || UDP 정보를 캡슐화 해줍니다. => 세그먼트

  

  

  

네트워크 계층 ( Network-Layer )

네트워크 계층은 실제 데이터의 전송을 담당하는 계층입니다.

 

네트워크 계층에서는 전송 계층에서 전달된 세그먼트 헤더에 출발/도착지의 IP 주소를 붙이고, 이를 패킷이라 부릅니다.

 

또한, 최적으로 경로를 찾는 라우팅 기능까지 담당을 합니다.

 

라우팅 프로토콜과 알고리즘은 이전에 작성한 포스팅을 참조 해주세요 :D

 

 

1) 프로토콜

https://kimbangg.tistory.com/263

 

[ Network ] 라우팅 프로토콜

머릿말 이전 게시물을 통해, 거리벡터 & 링크상태 알고리즘에 대해서 다루었습니다. 이번에는 1) IGP 에서 사용되는 라우팅 프로토콜인 RIP & OSPF 2) EGP 에서 사용되는 BGP 프로토콜까지 알아 보겠습

kimbangg.tistory.com

 

2) 알고리즘

https://kimbangg.tistory.com/262

 

[ Network ] 라우팅 알고리즘 ( Link State 편 )

머릿말 지난 게시물에서 라우터에 대한 설명과 라우팅 알고리즘 중 거리벡터 알고리즘을 다루었습니다. https://kimbangg.tistory.com/261 [ Network ] 라우팅 알고리즘 ( 라우터 & Link State 편 ) 1. 라우터(Rou..

kimbangg.tistory.com

https://kimbangg.tistory.com/261 

 

[ Network ] 라우팅 알고리즘 ( 라우터 & Distance Vertor 편 )

1. 라우터(Router) 란? Router는 1) 최적의 길을 찾아주는 Path Determine 과 2) 패킷을 전송하는 Switching 이렇게 2가지의 기능을 수행합니다. 우리가 여기서 다룰 내용은 최적의 길을 찾는 방법인 라우팅 프

kimbangg.tistory.com

 

 

   

데이터 링크 계층 ( Data Link Layer )

 

-  동일한 네트워크 내부에서의 담당을 제어합니다.

-  이전에서 넘어온 패킷에 출발지/인접 맥어드레스를 붙여 프레임을 만들어줍니다.

  

- 흐름 제어

  

네트워크 계층에서 했던 것과 같이 [송/수신자] 간의 속도를 맞추기 위한 것 입니다.

관련된 방법으로는 [ Stop & wait, Sliding Window] 기법이 있습니다.

 

  

- Framing 

실제로 한 대의 컴퓨터는 여러 대의 컴퓨터로부터 정보를 받습니다.

 

예를 들어서 A는 1100 0001을 보냈고, B는 0011 1100 을 보냈다고 가정해봅시다.

 

그렇다면 이 데이터를 수신 받은 컴퓨터는 1100 0001 0011 1100 과 같이 데이터를 받을 것입니다.

지금은 2대의 컴퓨터가 각각 하나의 데이터만을 보내서 구별이 가능하다고 치더라도, 이것이 늘어난다면 구별하기가 어려워지겠죠?

 

그렇기 때문에 여기서는 데이터의 첫과 끝에 데이터를 붙여주는 "프레이밍"  수행합니다.

예를 들어서  [ 시작 지점 ] 에는 1111을 [끝 지점] 에는 0000을 붙여준다고 가정해봅시다.

 

그럴 경우에는 데이터가 아무리 길어져도 [1111] 1100 0011 [0000] 과 같이 전송이 되기 때문에 구별 할 수 있겠죠? :D

 

  

- 데이터 전송

 

상위 계층인 네트워크 계층에서 이미 라우팅이 완료가 되어있습니다.

전체적인 이동경로는 확정이 되었지만, 실제로 데이터를 전달 할 때는 이웃에게 전달하는 방식만을 이용하는데요.

 

그 이유는 IP는 논리적 주소이기에 변동이 가능해서, 데이터가 올바르게 전달이 되지 않을 수 있기 때문입니다. 

또한, 모든 맥주소를 가지고 있으며 라우터에 부하가 많이 가기 때문에 실제로는 주위에 있는 기기의 맥주소 정보만이 담긴 ARP 테이블이 있기 때문입니다.

 

 

 

물리 계층 (  Physical Layer )

 

비트 단위를 전기 신호로 변환 해주고, 전송을 하는 기능을 수행합니다.

 

 

 

 

 

Reference

 

https://aws-hyoh.tistory.com/entry/ARP-%EC%89%BD%EA%B2%8C-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0

 

ARP 쉽게 이해하기

주소 결정 프로토콜(Address Resolution Protocol, ARP)은 네트워크 상에서 IP 주소를 물리적 네트워크 주소로 대응(bind)시키기 위해 사용되는 프로토콜이다. 여기서 물리적 네트워크 주소는 이더넷 또는

aws-hyoh.tistory.com

 

https://www.youtube.com/watch?v=1pfTxp25MA8&t=999s 

 

https://www.youtube.com/watch?v=Ilk7UXzV_Qc&t=365s