* TIL/개념: 최대한 공식 문서 & 책을 기반으로 배운 내용을 정리
* 현재 취준생으로 풋내기 개발자가 쓰는 글입니다.
* 그러니 조언과 지적 및 훈수는 언제나 환영입니다! 댓글로 많이 달아주세요!
부캠 과정에서 정리한 글 재업로드.
참고) 해당 글에서 각 Layer의 이해를 위해
우아한테크 채널의 [10분 테코톡] 히히의 OSI 7 Layer 영상을 많이 참고해서 작성했습니다.(매우 추천!)
각 Layer의 정의는 위키피디아에서 가져왔습니다.
두 대의 컴퓨터는 어떻게 통신하는가?
OSI 7 계층이란?
7 | 응용 계층(Application Layer) |
6 | 표현 계층(Presentation Layer) |
5 | 세션 계층(Session Layer) |
4 | 트랜스포트(전송) 계층(Transport Layer) |
3 | 네트워크 계층(Network Layer, 망 계층) |
2 | 데이터 링크 계층(Data Link Layer) |
1 | 물리 계층(Physical Layer) |
두 대의 컴퓨터는 어떻게 통신하는가?
쉽게 외우기: "응표가 세트장에서 일하다가 내가 잘못해서 내 대신 물먹었다"
- 정의: 네트워크 프로토콜이 통신하는 구조를 7개의 계층으로 분리, 각 계층 간 상호작용하는 방식을 정해놓은 것
- 배경: 1980년대 다양한 통신망이 생기게 되면서, 네트워크 유형이 어떻든 다 상호 통신해야 겠다는 필요성 부각
- 국제표준화기구(ISO, International Standards Organization)에서 OSI 7 계층이라는 새로운 네트워크 모델 발표
- 각 계층은 독립적
- 특정한 곳에서 문제가 발생하면 해당 계층만 고치면 됨
- 이로 인해 용이성과 유지관리가 수월
기능
Physical Layer(물리 계층)
두 컴퓨터가 전선(물리적)으로 연결되어 있을 때, 어떻게 통신하는가?
the physical layer or layer 1 is the first and lowest layer: the layer most closely associated with the physical connection between devices.
- 물리 계층은 데이터를 0과 1의 나열, 즉 전기적인 신호로 변환해서 주고 받도록 하는 계층
- Encoding: 0과 1의 나열을 아날로그 신호로 바꾸어 전선으로 흘려 보내기
- Decoding: 아날로그 신호가 들어오면 0과 1의 나열로 해석
- 관련 장비 : 리피터, 허브, 모뎀, 네트워크 어댑터
DataLink Layer(데이터 링크 계층)
동일한 네트워크 내에서, 여러 대의 컴퓨터는 어떻게 통신하는가?
The data link layer is the protocol layer that transfers data between nodes on a network segment across the physical layer.
- 데이터 링크 계층은 같은 네트워크에 있는 여러 대 컴퓨터들이 데이터를 주고 받을 수 있도록 하는 계층
- 데이터 링크 계층에서 전송 단위는 프레임이며, 여기에 MAC 주소를 부여한다.
- 여기서 프레임(Frame) = 보내고자 하는 데이터(payload) + 송신자(header)
- MAC 주소(Media Access Control Address): 어떻게 프레임을 전송할 건지 정의
- 물리 계층으로 받은 신호들이 네트워크 상의 장치에 올바르게 안착할 수 있게 한다.(주소 할당)
- 신호를 전달하는 동안 오류가 감지되면 데이터를 폐기한다. (오류 감지)
- 관련 장비: NDIS, Bridge, L2 switch
Network Layer(네트워크 계층)
수많은 연결된 컴퓨터 중에서, 목적지를 어떻게 찾을까?
The network layer is responsible for packet forwarding including routing through intermediate routers.
- 라우터를 통해 이동할 경로를 선택하여 IP 주소를 지정하고, 해당 경로에 따라 패킷을 전달하는 계층
- IP 주소를 이용해 길을 찾고(Routing), 자신 다음의 라우터에게 데이터를 넘겨준다(Forwarding)
- 관련 장비: 라우터
Transport Layer(전송 계층) ✨
수신자의 컴퓨터에서 받은 데이터를 컴퓨터 내에 있는 목적지 프로세스에게 어떻게 주는가?
전송 계층(Transport layer)은 계층 구조의 네트워크 구성 요소와 프로토콜 내에서 송신자와 수신자를 연결하는 통신 서비스를 제공한다.
- Port 번호를 사용하여 호스트에서 최종 도착지인 프로세스까지 데이터가 도달하게 하는 계층
- 대표적인 통신 방식: TCP와 UDP
- 종단 간 통신, 신뢰성, 흐름 제어 및 혼잡 제어, 주소 지정 및 다중화 제공
- 종단 간 통신: 응용 프로그램에 데이터 스트림을 받고 보내는 방법을 제공
- 신뢰성: 데이터 전송 중에 발생할 수 있는 오류 제어
- 흐름 제어: 수신측보다 송신측의 데이터 처리 속도가 더 빠른 경우 발생하는 문제 해결
- 안정적으로 전송할 수 있는 것보다 더 많은 데이터를 전송하지 않도록 한다.
- 혼잡 제어: 네트워크로 전송되는 패킷의 수가 네트워크에서 처리하는 수를 초과할 때 발생하는 혼잡 문제 해결
- 주소 지정: 프로세스 간 통신을 위해 응용 프로그램에 포트 번호를 할당
- 다중화: 출발지 호스트에서 소켓으로부터 데이터를 모아 헤더 정보를 더해 캡슐화하는 작업
Session Layer(세션 계층)
The session layer provides the mechanism for opening, closing and managing a session between end-user application processes, i.e., a semi-permanent dialogue.
- 세션을 열고 닫고, 관리하는 매커니즘을 제공하는 계층
- 체크포인트를 설정하여 동기화를 시켜줌
- 예를 들어 100MB 데이터를 전송할 때, 체크포인트를 5MB로 설정
- 만약 48MB를 전송하다가 끊겼을 때, 처음부터 다시 하지 않고 45MB부터 전송을 시작
Presentation Layer(표현 계층)
the presentation layer is layer 6 and serves as the data translator for the network.
- 데이터 변환 → 압축 → 암호화 해주는 계층
- 수신 애플리케이션 계층에서 읽을 수 있도록 데이터를 변환하는 역할 수행
- 그 외에도 압축하거나 암호화 및 복호화, 직렬화 등이 해당 계층에서 수행된다.
- 예시: EBCDIC → ASCII 로 변환
Application Layer(응용 계층)
An application layer is an abstraction layer that specifies the shared communications protocols and interface methods used by hosts in a communications network.
- 최종 목적지. 데이터를 사용자에게 보여주는 계층
- 주의: OSI 7 계층 외에도 TCP/IP에도 지정되어 있으나 각각의 정의와 목적은 상이함
- OSI 7 계층: 통신 담당하는 사용자 인터페이스
- TCP/IP: 통신 프로토콜 + 사용자 인터페이스
요약
이름 | 설명 | |
7 | 응용 계층(Application Layer) | - 최종 목적지로, 데이터를 사용자에게 보여주는 계층(사용자 인터페이스) - TCP/IP에서는 통신 프로토콜의 역할도 같이 함 |
6 | 표현 계층(Presentation Layer) | - 데이터 변환, 압축, 암호화, 직렬화 해주는 계층 - 수신 애플리케이션 계층에서 읽을 수 있도록 데이터를 변환하는 역할 수행 |
5 | 세션 계층(Session Layer) | - 세션을 열거나 닫고, 관리하는 매커니즘을 제공하는 계층 - 체크포인트를 사용하여 동기화 |
4 | 전송 계층(Transport Layer) | - Port 번호를 사용해서 호스트에서 최종 도착지인 프로세스까지 데이터가 도달하게 하는 계층 - 대표적인 통신 방식: TCP, UDP - 종단 간 통신, 신뢰성, 흐름 제어 및 혼잡 제어, 주소 지정 및 다중화 |
3 | 네트워크 계층(Network Layer) | - IP 주소를 이용해 길을 찾고(Routing), 해당 경로에 따라 패킷을 전달(Forwarding)하는 계층. - 관련 장비: 라우터 |
2 | 데이터링크 계층(Data Link Layer) | - 같은 네트워크에 있는 여러 대의 컴퓨터들이 데이터를 주고 받을 수 있도록 하는 계층. - 전송단위는 프레임 - MAC 주소를 부여 - 주소 할당과 오류 감지 기능 수행 - 관련 장비: L2 switch NDIS, Bridge |
1 | 물리 계층(Physical Layer) | - 데이터를 전기적인 신호로 변환해서 주고 받는 계층 - 관련 장비: 리피터, 허브, 모뎀, 네트워크 어뎁터 |
참고 자료
https://www.youtube.com/watch?v=78qXOlD-8NQ
https://www.techtarget.com/searchnetworking/definition/Transport-layer
마치며
나중에 시간날 때 각각의 계층에서 인코딩과 디코딩되는 과정을 하나의 그림으로 나타내야겠다...
'CS > Network' 카테고리의 다른 글
[TIL/개념] 성공과 실패를 결정하는 1%의 네트워크 원리: 1-4 프로토콜 스택에 메시지 송신을 의뢰 (0) | 2023.07.06 |
---|---|
[TIL/개념] 성공과 실패를 결정하는 1%의 네트워크 원리: 1-3. DNS 서버의 연대 과정 (0) | 2023.07.06 |
[TIL/개념] 성공과 실패를 결정하는 1%의 네트워크 원리: 1-2. 리졸버로 IP 주소를 DNS 서버에 조회 (0) | 2023.07.06 |
[TIL/개념] 성공과 실패를 결정하는 1%의 네트워크 원리: 1-1. HTTP 리퀘스트 메시지 작성 (0) | 2023.07.05 |