CS

OSI 7 layer

Chemi___6_oj 2023. 1. 25. 17:16

Application layer(L7) 

응용 프로세스를 직접 사용해 일반적인 응용 서비스를 수행한다. 

HTTP, FTP, DNS, SMTP와 같은 프로토콜이 속한 계층 

웹서버는 HTTP 프로토콜을 사용해 html 데이터를 클라이언트에 제공한다. 그

래서 APache, Nginx와 같은 웹서버도 이 계층에서 작동한다.

Presentation layer(L6)

데이터의 변환, 압축 암호화가 이루어지는 계층 (JPEG, MPEG 등)

파일 인코딩, 명령어를 포장, 압축, 암호화한다.

서로 다른 통신 기기간에 다른 인코딩을 사용하기 대문에 데이터 변환이 이곳에서 이루어진다.

 

Session layer(L5)

세션을 열고 닫고를 제공하는 메커니즘의 계층 (API, Socket)

세션 복구도 지원한다. 체크포인트를 통해 동기화를 시켜준다.

만약 A에서 A로 100MB를 전송하던 도중 연결이 끊기면 다시 그 지점부터 세션을 재개할 수 있다.

데이터가 통신하기 위한 논리적 연결을 담당한다. TCP/IP 세션을 만들고 없애는 책임을 지니고 있다.

Transport layer(L4)

세그멘테이션, 흐름제어, 오류 제어를 제공한다. (TCP, UDP)

상위 계층 데이터를 받아 세그먼트라는 단위로 나눈 것을 제공한다.

100MB의 데이터를 전송하는 경우 세그멘테이션을 하지 않으면 이 데이터가 모두 로딩되고 나서야 비디오를 볼 수 있다.

세그먼트단위로 나누면 비디오 일부분을 볼 수 있게 된다. 만약 세그멘테이션을 하지 않으면 연결이 중간에 끊기면 데이터는 더 크게 날아간다.

흐름제어는 초당 10메가 바이트를 처리할 수 있는 기기에 초당 50메가의 데이터를 보낼 경우 전송량을 낮추도록 요청하고 그 반대돋 가능하다.(stop and waiting)

 

오류 제어 : 보낸 데이터가 오류로 인한 손실이 있는지, 있다면 다시 해당 데이터를 보내주는 것을 의미한다. FEC,BEC,ARQ와 같은 방식들이 있다. 

 

Network layer(L3)

 데이터의 전송을 담당한다. (IP, 라우터)

호스트에 IP를 부여하고 해당 도착지 까지 최적의 경로를 제공한다.

 

DataLink layer(L2)

데이터링크는 계층과 달리 동일한 네트워크에서 데이터 전송을 담당한다.

차이 : 네트워크 계층은 서로 다른 두 네트워크의 계층을 담당한다. (브릿지, 스위치 등)

 

또한 물리 계층으로 송수신되는 정보를 관리하여 안전하게 전달되도록 도와준다.

Mac 주소를 통해 통신한다. 프레임에 Mac 주소를 부여하고 에러검출, 재전송, 흐름제어를 진행한다.

 

데이터링크 계층의 단위를 프레임이라고 하는데, 프레임에서 몇가지 오류가 나면 데이터링크 계층은 이 프레임들을 그냥 버린다.

반면, 전송 게층은 해당 데이터가 오류가 나면 다시 데이터를 보내주며 오류 복구를 한다. 

 

데이터 링크 계층 동작 방식 (A에서 B로 데이터를 전송)

0. 처음 A에는 IP 주소와 맥 주소가 담겨있다.

1. A에서 스위치로 데이터를 보낸다. 이때 데이터에는 출발지의 맥 주소와 가장 가까운 라우터의 맥 주소를 넣는다.

B의 맥주소를 넣지 않는 이유는 그 주소를 처음에는 알지 못하기 때문이다. 

스위치는 캠 케이블을 통해 스위치와 연결된 맥 주소에 대한 정보를 가지고 있다. 

스위치에서 디캡슐화가 한 번 일어나 헤더에 대한 정보를 파악한다.

헤더에서 라우터의 맥 주소를 확인하고 그쪽으로 데이터를 전송한다. 

 

2. 라우터에서는 디캡슐화를 두 번 해 도착지에 대한 IP주소를 확인한다. (L3)

라우터에서 라우팅 테이블을 통해 라우팅을 한 후,

B의 맥주소를 확인하고 L2의 헤더를 B에 대한 맥 주소로 업데이트를 한다. ( = 여기서 목적지 주소를 업데이트 한다)

데이터링크는 헤더와 함께 트레일러라도 정보도 붙는데, 오류 제어를 위한 정보가 담겨있다. 이 데이터를 캡슐화 시킨 것이 프레임

 

여기서 ARP DHCP 를 통해 라우터의 IP를 맥주소로 변환하고,  라우터에 대한 도착지 맥주소를 만들어(B의 맥주소) layer 2의 헤더를 업데이트 한다. 

 

ARP(address resolution protocol) : IP 주소로부터 MAC 주소를 구하는 IP와 MAC 주소의 다리 역할을 하는 프로토콜

arp를 통해 가상 주소인 IP 주소를 실제 주소인 MAC 주소로 변환한다. RARP를 통해서 그 역도 가능하다.

DHCP(dynamic host configuration protocol) :  IP주소 및 기타 통신 매개변수를 자동으로 할당하기 위한 네트워크 관리 프로토콜

 

 

원래 라우터는 여러 대가 있어 계속 출발지와 도착지 주소를 업데이트하면서 전달을 한다.

 

3. 라우터에서 스위치로 전달하고 스위치에서 헤더 정보를 확인 해 B로 정보를 전달한다.

 

Psyical layer(L1)

이런 베트 단위를 전기신호로 변경해 전송한다.(리피터, 케이블, 허브 등)

 

단지 데이터 전기적인 신호로 변환해서 주고받는 기능을 진행하는 공간이다. 즉, 데이터를 전송하는 역할만 진행한다.

 

현재는 OSI 모델보다는 현재는 TCP/IP를 사용한다. L6, L5 계층이 어플리케이션 계층으로 통합되었다.

 

https://www.google.com/ 을 접속할 때 일어나는 일

1. 브라우저가 URL에 적힌 값을 파싱해서 HTTP Request Message를 만들고, OS에 전송 요청을 한다.

 

 이 때, Domain으로 요청을 보낼 수 없기 때문에 DNS Lookup을 수행합니다.

 

2. DNS Lookup 과정은 크롬의 경우 브라우저 → hosts 파일 → DNS Cache의 순서로 도메인에 매칭되는 ip를 찾습니다.

 일반적으로 설명하는 DNS Lookup은 루트 도메인서버에서부터 서브도메인 서버순으로 찾게됩니다.

 

3. 이 요청은 프로토콜 스택이라는 OS에 내장된 네트워크 제어용 소프트웨어에 의해 패킷에 담기고 패킷에 제어정보를 덧붙여 LAN 어댑터에 전송하고, LAN 어댑터는 이를 전기신호로 변환시켜 송출합니다.

 

4. 패킷은 스위칭 허브 등을 경유하여 인터넷 접속용 라우터에서 ISP(인터넷 서비스 제공 업체)로 전달되고 인터넷으로 이동한다.

 

5. 액세스 회선에 의해 통신사용 라우터로 운반되고 인터넷의 핵심부로 전달된다. 고속 라우터들 사이로 목적지까지 패킷이 흘러들어가게 된다.

6. 핵심부를 통과한 패킷은 목적지의 LAN에 도착하고, 방화벽이 패킷을 검사한 후 캐시 서버로 보내어 웹 서버에 갈 필요가 있는지 검사한다.

 

7. 웹 서버에 도착한 패킷은 프로토콜 스택이 패킷을 추출하여 메시지를 복원하고 웹 서버 애플리케이션에 넘깁니다. 애플리케이션은 요청에 대한 응답 데이터를 작성하여 클라이언트로 회송하고, 이는 전달된 방식 그대로 전송됩니다.