OSI 7계층이란?
- OSI 참조 모델을 기반으로 국제 표준화 기구(ISO)에서 표준화한 모델
- 네트워크 통신에서 생긴 여러 가지 충돌 문제를 완화하기 위해 고안된 표준안
1계층 - 물리 계층(Physical Layer)
- 두 대의 컴퓨터가 통신하려면 0과 1을 주고 받을 수 있으면 됨
- 두 대의 컴퓨터가 전선 하나로 연결되어 있다고 가정하면 1을 보낼 때 +5V의 전기를 전선으로 흘려보내고, 0을 보낼 때 -5V의 전기를 전선으로 흘려보내면 0과 1의 전송이 가능
- 하지만 이런 디지털 신호를 통과시킬 수 있는 전선은 없음
- 따라서 0과 1의 나열을 아날로그 신호로 바꾸어 전선으로 흘려 보내고 -> 인코딩
- 아날로그 신호가 들어올 때 0과 1의 나열로 해석하면 -> 디코딩
- 물리적으로 연결된 두 대의 컴퓨터가 데이터를 주고 받을 수 있음
- 이 때 인코딩, 디코딩하여 데이터를 주고 받을 수 있게 해주는 모듈을 물리 계층이라 함
- 물리 계층 기술은 PHY 칩에 하드웨어적으로 구현되어 있음
2계층 - 데이터 링크 계층(Data Link Layer)
- 여러 대의 컴퓨터를 모두 전선으로 연결시키는 것은 비용이 많이 듬
- 3대의 모든 컴퓨터를 서로 연결시키기 위해서는 3개의 전선이 필요
- 4대의 컴퓨터를 연결시키기 위해서는 6개... 이처럼 기하 급수적으로 늘어나게 됨
- 따라서 여러 대의 컴퓨터를 라우터에 연결시키고, 라우터와 다른 라우터들을 연결시키는 것을 반복하면 효율적으로 모든 컴퓨터를 연결시킬 수 있음
- 국가 간의 전선은 규모가 큰 해저 케이블을 사용
- 이렇게 전 세계 컴퓨터들이 계층구조로 연결되어 있는 것을 인터넷이라 함
- 컴퓨터에 여러 발송지로부터 데이터를 전달받는 경우
- 0101
- 1010
- 0001
-> 0101 1111 0001
- 누가 어떤 데이터를 보냈는지 정확히 알 수 없음
- 따라서 구분자 비트를 넣어서 처리함
- 1111 0101 0000
- 1111 1010 0000
- 1111 0001 0000
-> 1111, 0000 으로 감싸진 부분을 추출하면 0101, 1010, 0001
- 이제 여러 발송지로부터 데이터를 전달받는 경우를 처리할 수 있음
- 이렇게 원본 데이터를 감싼 것을 Frame이라고 함
- 이처럼 같은 네트워크에 있는 여러 대의 컴퓨터들이 데이터를 주고받기 위해 필요한 모듈을 데이터 링크 계층이라 하고 랜카드에 구현되어 있음
- Framing 또한 데이터 링크 계층에 속한 작업들 중 하나
3계층 - 네트워크 계층(Network Layer)
- 데이터를 보낼 때 출발지와 목적지를 알기 위해 IP 주소 사용
- A가 B에게 데이터를 보내기 위해 IP 패킷이라는 구조로 데이터를 감싸서 전송
- 패킷에는 A의 IP 주소와 B의 IP 주소가 포함되어 있어 A -> B로 데이터 전송이 가능
- 이 과정에서 B가 데이터를 전달 받기 위하여 여러 라우터를 거치게 됨
- 이 때 어떤 라우터들을 거쳐야 B에 도착하는 지 경로 설정을 하는 것을 라우팅이라고 함
- 네트워크 계층은 커널(운영체제의 핵심적인 부분)에 소프트웨어적으로 구현되어 있음
4계층 - 전송 계층(Transport Layer)
- 현재 컴퓨터에 여러 프로세스(예를 들어 카카오톡, 슬랙)가 존재하고, 컴퓨터에 데이터가 전송되어 온 경우
- 해당 데이터가 카카오톡에 온 것인지, 슬랙에 온 것인지 알 수 없음
- 따라서 프로세스들에게 포트 번호를 부여하고 IP 패킷 위에 출발지, 목적지 포트가 존재하는 패킷으로 감싼다면
- 어떤 컴퓨터(IP 주소), 어떤 프로세스(포트 번호)에 전송했는지 알 수 있음
- 전송 계층에는 TCP, UDP가 존재함
- TCP는 출발지, 목적지 포트 번호 외 IP의 문제점(패킷 소실 등)들을 보완하기 위한 장치들이 존재
- UDP는 거의 출발지, 목적지 포트 번호만 존재하기 때문에 기능이 없지만 가볍고 커스텀 가능하다 생각하면 됨
- 네트워크 계층과 마찬가지로 커널에 소프트웨어적으로 구현되어 있음
TCP/IP 5계층
- 현재 TCP/IP의 점유율이 높아져서 현재는 TCP/IP 모델을 사용
- TCP/IP 계층에서는 5, 6계층인 세션 계층, 표현 계층이 7계층인 응용 계층과 통합 됨
5계층 - 세션 계층(Session Layer)
- TCP/IP 모델에서는 응용 계층과 통합 됨
- 데이터가 통신하기 위한 논리적 연결을 담당 -> 단방향 or 양방향 회선 생성 유지 종료
- TCP/IP 세션을 만들고 없애는 책임을 지니고 있음
6계층 - 표현 계층(Presentation Layer)
- TCP/IP 모델에서는 응용 계층과 통합 됨
- 해당 데이터가 TEXT인지 JPG인지 PNG인지 MP3인지 등을 구분하는 역할
7계층 - 응용 계층(Application Layer)
- HTTP 프로토콜이 속해 있음
- HTTP의 경우 request와 response로 나누어짐
- request와 response 똑같이 start line, headers, body로 구성되지만 담겨오는 정보가 약간 다름
- 예를 들어 request는 start line에 HTTP 메소드, URI, HTTP 버전이 들어감
- 반면 response는 start line에 HTTP 버전, 응답 코드, 응답 상태가 들어감
- 다른 프로토콜으로는 FTP, SSH가 속해 있음