일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 3-way-handshake
- EC2
- 알고리즘
- 프로토콜
- 백준
- Java
- 성능 개선
- JMeter
- 객체지향
- docker
- Spring
- 형상관리
- RDS
- 네트워크
- Spring Security
- redis
- OSI 7계층
- JWT
- N+1 문제
- 스프링부트
- OOP
- 코딩테스트
- 로그인
- 인메모리
- AWS
- 트러블 슈팅
- 동시성 문제
- TCP/IP
- 4-way-handshake
- Today
- Total
열공스토리
[Network] OSI 모델 본문
이번 포스팅에서는 OSI 모델에 대해 정리해 보았습니다.
OSI 모델이란?
OSI 모델이란 국제표준화기구 ISO에서 개발한 네트워크 통신 과정을 7개의 계층으로 나눠 그 과정을 표준화한 모델입니다. 이것을 계층별로 나눈 이유는 통신 과정이 일어나는 과정을 단계별로 파악하기 위해서입니다.
만약, 네트워크 통신 과정 중에 문제가 발생한다면 문제 상황을 보고 어느 단계에서 문제가 발생하였는지 파악하여 그 단계의 장비나 소프트웨어적인 문제만 해결하면 됩니다.
OSI 7 계층
OSI 모델은 다음과 같이 7개의 계층으로 구성되어 있습니다.
1 계층 - 물리 계층, Pysical Layer
1 계층, Pysical Layer는 디지털 신호를 아날로그 신호로, 아날로그 신호를 디지털 신호로 변환하는 모듈입니다.
먼저, 송신측에서 상위 계층으로부터 받은 일련의 0과 1 데이터를 아날로그 신호로 인코딩(encoding)합니다. 이때, 데이터를 아날로그 신호로 변환하는 것을 변조라고 하고 변조하는 주체를 인코더(encoder)라고 합니다. 수신측에서는 송신측으로부터 받은 아날로그 신호를 디코딩(decoding)하여 인코딩 되기 전 원본 데이터로 복구합니다. 이때, 아날로그 신호를 데이터로 변환하는 것을 복조라고 하고 복조 하는 주체를 디코더(decoder)라고 합니다.
Pysical Layer는 PHY칩이라는 곳에 하드웨어적으로 구현되어 있습니다.
PHY칩은 신호의 최종 앞단에서 쓰는 칩을 일컬어 부르며 디지털 형태의 네트워크 신호를 전기적 신호인 아날로그 형태로 변환하는 역할을 한다.
2 계층 - 데이터 링크 계층, Data Link Layer
2 계층, Data Link Layer는 같은 네트워크 상의 노드들이 안전하게 데이터를 주고받을 수 있도록 해주는 모듈입니다.
Network Layer가 목적지 주소까지 안내하는 역할이라고 하면 Data Link Layer는 그 목적지까지 가는 과정에서 거쳐가는 노드들에 데이터를 안전하고 확실하게 데이터를 보내는 역할인 것입니다. Data Link Layer는 다음의 역할을 수행합니다.
1. Fraiming
상위 계층으로부터 받은 데이터에 앞 쪽에 헤더, 뒤 쪽에 트레일러를 붙여 프레임(Frame)이라는 단위로 캡슐화 작업을 합니다. 헤더에는 시작지 주소와 목적지 주소 정보가 담겨있고 트레일러에는 오류검출의 목적으로 사용됩니다.
- ( [헤더][데이터][트레일러] )
2. 흐름 제어
수신측은 송신측으로부터 데이터를 받기 위해 버퍼를 열어둡니다. 만약, 수신측의 데이터 처리 속도가 송신측이 데이터를 보내는 속도보다 느리다면 수신측에서는 버퍼가 꽉 차게 되어 데이터가 유실될 가능성이 있습니다. 흐름 제어는 송수신 속도 차이로 인한 데이터의 유실과 오버플로우를 방지합니다.
3. 에러 제어
데이터는 통신 과정에서 전기적 신호로 데이터를 보내는 물리적인 매체가 외부의 요인으로 손상되면 데이터가 올바르지 못한 형태로 보내질 가능성이 있습니다. 에러 제어는 이러한 과정에서 발생한 에러를 검출하여 에러를 수정하거나 데이터를 재전송해 줍니다.
Data Link Layer는 LAN카드에 하드웨어적으로 구현되어 있습니다.
3 계층 - 네트워크 계층, Network Layer
3 계층, Network Layer는 목적지 IP주소를 기반으로 시작지에서 목적지까지 라우팅(routing)하는 모듈입니다.
Network Layer에서는 패킷(packet)이라는 단위를 사용하는데요. 상위 계층에서 받은 데이터에 목적지 IP주소를 추가하여 만든 것을 패킷이라고 부르는데 이 패킷의 정보를 기반으로 목적지까지 최적의 경로로 이동하는 라우팅이 일어납니다.
Network Layer는 운영체제 커널에 소프트웨어적으로 구현되어 있습니다.
4 계층 - 전송 계층, Transposrt Layer
4 계층, Transport Layer은 포트(port) 번호를 이용하여 목적지의 최종 애플리케이션에 데이터가 도착하게 하는 모듈입니다.
포트 번호란 동일한 컴퓨터 내에서 실행되는 애플리케이션들을 식별하기 위한 고유한 주소입니다. 송신측에서는 수신측의 포트 번호를 알고 있습니다. 따라서 송신측에서는 상위 계층에서 받은 데이터 헤더에 포트 번호를 추가해 세그먼트(segment)라는 단위로 만듭니다. 수신측에서는 이 세그먼트에서 포트 번호를 확인하여 알맞은 애플리케이션에 데이터를 전달하도록 합니다.
Network Layer는 운영체제 커널에 소프트웨어적으로 구현되어 있으며, TCP/UDP 등의 프로토콜을 사용합니다.
5 계층 - 세션 계층, Session Layer
5 계층부터는 애플리케이션과 관련된 계층으로 Session Layer는 데이터가 통신하기 위한 논리적 연결을 담당합니다.
Physical Layer에서부터 Transport Layer까지는 데이터를 단순히 주고 받는 것만 하지만, Session Layer부터는 송신측 애플리케이션과 수신측 애플리케이션의 논리적인 연결이 이루어집니다. 이때, Session Layer에서는 세션을 열어 두 애플리케이션 간의 연결 상태를 설정합니다.
이 계층에서는 동기화와 세션 복구 등의 기능을 수행합니다.
6 계층 - 표현 계층, Presentatoion Layer
6 계층, Presentation Layer에서는 데이터를 표준화된 형식으로 변환하여 다른 컴퓨터에서 데이터를 읽을 수 있게합니다.
컴퓨터들은 저마다 다른 데이터 표현 방식을 가지고 있습니다. 때문에 Presentation Layer에서 데이터를 표준화된 형식으로 변환하여 수신측이 받은 데이터를 알맞게 변환하여 읽을 수 있도록 해줍니다. 또, 송신측이 데이터를 보낼 때 외부에서 데이터를 빼앗아 악용하는 것을 방지하기 위한 암호화 작업과 효율적인 전송을 위해 데이터 압축 작업도 Presentatin Layer에서 이루어집니다.
7 계층 - 응용 계층, Application Layer
7 계층, Application Layer는 최상위 계층으로서 사용자와 가장 가까운 계층입니다.
이 계층에서는 송수신 컴퓨터의 각각 응용프로그램이 사용자가 통신을 하는 목적의 데이터에 대한 서비스를 제공합니다.
Application Layer에서 사용하는 프로토콜로는 우리가 흔히 사용하고 있는 프로토콜인 HTTP, 파일 전송 프로토콜 FTP, 메일 전송 프로토콜 SMTP, 그 밖에 DNS, Telnet, SSH 프로토콜 등이 있습니다.
참고
https://velog.io/@backtony/TCPIP-%EB%AA%A8%EB%8D%B8
https://www.youtube.com/watch?v=IX1va7gr39k
https://www.youtube.com/watch?v=1pfTxp25MA8
https://east-star.tistory.com/26
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=ttochid1&logNo=10037450926
'Network' 카테고리의 다른 글
[Network] TCP/IP 모델 (0) | 2023.08.14 |
---|