Jimmy's iOS
OSI 7계층 본문
오늘은 OSI 7 계층에 대해서 간단히 공부해보았다.
OSI 7 계층은 국제표준기구 iso 가 발표한 네트워크 모델이다.
총 7개의 계층으로 나누어져 있다.
1. Physical Layer (물리계층)
- 물리 계층에서는 비트 단위들의 데이터를 전기신호로 변환해 주고 전송을 해 주는 역할을 하고 있다.
- 네트워크에서 통신장비 연결하는데 사용되는 물리적 사양을 정의
- 케이블, 모뎀, 리피터
2. Data Link Layer (데이터 링크 계층)
- 물리계층의 물리적 네트워크 링크를 통해서 흐르는 데이터의 오류 감지나 복구
- 데이터 링크 계층은 네트워크 계층과 비슷한데 차이점이라 하면 네트워크 계층은 서로 다른 두 네트워크 간의 전송을 담당한다면 데이터 링크 계층은 동일한 네트워크 내에서의 전송을 담당한다.
3. Network Layer (네트워크 계층)
- 네트워크 계층은 IP 나 라우터장비가 속한 계층이다.
- 데이터의 전송을 담당한다.
- 호스트에다가 IP 번호를 부여하고 해당 도착지 IP 까지 최적의 경로를 찾아 주는 기능을 제공한다. 이것을 라우팅 이라고 부른다.
- 각 네트워크의 끝점, 엔드 포인트를 식별하고 데이터 패킷을 전달하기 위해서 IP 주소와 같은 논리 주소를 정의한다.
4. Transport Layer (전송 계층)
- 트랜스포트 계층은 서로 다른 두 네트워크간의 전송을 담당하는 계층이다.
- 트랜스포트 계층은 세그멘테이션, 흐름제어 그리고 오류제어등을 제공하는데 세그멘테이션은 상위 계층 데이터를 받아서 세그먼트 라는 데이터의 단위로 나누는 것을 의미한다.
- 이런 세그멘테이션 작업을 왜 하게 될까?
- 한 컴퓨터에서 100mb 의 비디오를 전송한다고 가정해보자. 사용자는 세그멘테이션을 하지 않는다면 이 100mb 의 비디오가 모두 로딩되고 나서야 비디오를 볼 수 있게 될 것이다. 하지만 이렇게 세그먼트 작은 단위로 나누게 되면 비디오 일부분을 볼 수 있게 되고 그 만큼 더 유쾌한 경험이 될 수 있을 것이다. 그리고 연결이 중간에 끊기게 되었을때 세그멘테이션을 하지 않게 되면 큰 데이터가 날라가니 손실률이 더 크다고 볼 수 있다.
- 흐름제어는 서로 다른 데이터 전송량이 다른 기기에서 흐름을 제어하는 것이다. 예를 들면 초당 50 메가바이트를 처리할 수 있는 컴퓨터 A 에서 초당 10메가바이트를 처리할 수 있는 컴퓨터 B 로 데이터를 보내면 컴퓨터 B 가 전송량을 낮춰달라고 요구를 하고 전송량을 낮추는 방식이다. 반대로 너무 낮으면 높여달라고도 말할 수 도 있다.
- 오류제어는 내가 보낸 데이터가 정확히 오류 손실이 없는지 만약에 오류가 있다면 다시 해당 데이터를 보내 주는 것을 의미한다.
- 데이터가 안정적으로 전달될 수 있도록 제어를 한다.
- TCP, UDP
- TCP , UDP 는 전송 계층의 프로토콜은 같지만 책임감? 측면에서는 다르다.
- TCP 는 대상에게 데이터를 전달했을때 이게 전달 되었는지 안되었는지 확인해주고 그 결과를 무조건 보장한다.
- UDP 는 잘 갔는지 안갔는지 관심없고 보장을 안한다.
- 우리가 사용하는 HTTP 프로토콜은 TCP 기반의 프로토콜
5. Session Layer (세션 계층)
- 세션 계층은 세션을 열고 닫고를 제공하는 메커니즘의 계층
- 세션을 시작하고 제어하고 관리하는 역할을 한다.
- 통신 장치간의 상호작용 설정, 유지, 관리
- 세션 계층은 세션 복구도 지원을 하는데 세션 도커는 체크포인트라는 것을 통해 동기화를 시켜준다. 컴퓨터 A 에서 B 로 100 mb 의 데이터를 전송한다고 했을 때 (체크포인트를 5mb 마다 설정한다고 가정) 48mb 의 데이터를 전송하는 도중에 연결이 끊기게 되어도 체크포인트 덕분에 다시 45mb 부터 세션을 재개할 수 있게 된다.
6. Presentation Layer (표현 계층)
- 해당 계층에서는 데이터의 변환, 데이터의 압축, 그리고 데이터 암호화가 이루어진다.
- 서로 다른 통신 기기 간에 다른 인코딩을 사용할 수도 있기 때문에 해당 계층에서 데이터 변환이 이루어지는것이다.
7. Application Layer (응용 계층)
- 응용 프로세스를 직접 사용하여 직접적인 응용 서비스를 수행
- 가장 상단에서 사용자와 상호작용 하는 계층
- 앱 상의 네트워크
- 우리가 사용하는 http, FTP, SMTP, Telnet 같은 프로토콜들이 속한 계층
'기타' 카테고리의 다른 글
SSH 키를 이용해서 여러개의 깃허브 계정 사용하기 (0) | 2022.04.19 |
---|---|
HTTP 통신 알아보기 (0) | 2021.10.31 |