국제 표준화 기구인 ISO가 확립한 OSI 7계층은 개방화된 데이터 통신 환경에서 사용하는 계층적 구현 모델의 표준으로, 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것을 의미합니다. 이렇게 OSI 7계층을 나눈 이유는 여러대의 컴퓨터가 데이터를 주고 받으려면 이들을 서로 연동할 수 있도록 표준화된 인터페이스를 지원해야하기 때문입니다.
또한 계층을 나누면 나중에 특정한 문제가 발생했을때 다른 계층은 건들지 않고 문제의 원인인 해당 계층에 대해서만 문제를 해결할 수 있기 때문입니다.
OSI 계층의 구성은 물리, 데이터링크, 네트워크, 전송, 세션, 표현, 응용계층인 총 7계층으로 이루어져 있습니다.
이를 계층별로 상세하게 설명하면 다음과 같습니다.
물리 계층
물리적 선로로 전송하기 위해서 전기적 신호인 bit로 데이터를 전송하기 위해 요구되는 기능을 정의하며
케이블, 연결장치등 전송에 필요한 두 장치간의 기계적, 전기적,물리적 특성에 대한 규칙을 정의합니다.
전송 단위: bit , 네트워크 장비 : 허브(포트가 여러개로 구성되어 있어서 컴퓨터를 여러대 연결할 수 있고 전기 신호를 정형하고 증폭시키는 역할을 함, 다만 무조건적으로 전기신호를 일 대 다 형태로 보내기때문에 때에 따라 비효율적일 수도 있음) ,리피터 (거리가 멀때 신호를 증폭시키는 역할)
데이터링크 계층
네트워크 장비간에 신호를 주고 받는 규칙을 정하는 계층으로, 랜에서 데이터를 정상적으로 주고받기 위해 필요한 계층입니다.
이 계층에서는 맥 주소를 가지고 통신하게 되는데 이 맥주소를 포함하고 있는 이더넷이라는 규칙으로 통신하게 됩니다.
이더넷은 여러 컴퓨터가 동시에 데이터를 전송해도 충돌이 일어나지 않는 구조로 되어있는데,
데이터가 각기 다른 컴퓨터들을 목적지로 두는 케이블에서 충돌이 일어나지 않도록 CSMA/CD 방식으로 통신합니다.
여기서 CS는 '데이터를 보내려고 하는 컴퓨터가 케이블에 신호가 흐로고 있는지 아닌지 확인한다',
MA는 '케이블에 데이터가 흐르고 있지 않다면 데이터를 보내도 괜찮다',
CD는 '충돌이 발생하고 있는지를 확인한다'를 의미한다고 합니다.
(하지만 요즘은 효율이 좋지 않다는 이유로 잘 사용되지 않고, 스위치를 통해 충돌을 방지한다고 하네요)
각 계층에서 헤더를 붙이곤 하는데, 2계층에서 캡슐화할때 붙여지는 이더넷 헤더는
목적지 MAC주소 (6바이트) / 출발지 MAC주소(6바이트) / 유형(2바이트, 상위계층 프로토콜의 종류를 나타냄)
로 구성됩니다.
또한 데이터 전송 도중에 오류가 발생하는지 확인하는 용도로 이더넷 헤더 외에 데이터 뒤에 추가되는 것을 트레일러 혹은 FCS(Frame Check Sequence)라고 합니다.
이렇게 이더넷 헤더와 트레일러가 추가된 데이터를 프레임이라고 하는데요,
목적지 MAC주소 / 출발지 MAC주소 / 유형 / 데이터 / 트레일러
이렇게 구성되며 물리계층에서 이 프레임의 비트열을 전기신호로 변환하여 네트워크를 통해 전송한다고 합니다.
전송단위 : 프레임 프로토콜: 이더넷, MAC 장비: 브릿지, 스위치(MAC주소 테이블이 저장되어 있으며, 이 테이블은 스위치의 포트 번호와 그 포트에 연결되어 있는 컴퓨터의 MAC주소가 등록되는 데이터베이스입니다)
네트워크 계층
네트워크 간의 통신을 가능하게 하는 역할을 하며, 데이터를 목적지까지 가장 안전하고 빠르게 전달하는 기능을 수행합니다. 경로를 선택하고 주소를 정하고 경로에 따라 패킷을 전달해주는 역할을 하는데요.
이 계층의 대표적인 장비는 라우터이며, 여러개의 노드중에서 몇개를 골라 최적의 경로를 선택하게 도와줍니다.
이 네트워크 계층에는 IP라는 프로토콜이 있는데요, 네트워크 계층에서는 IP프로토콜을 사용하여 캡슐화를 진행할때 아래와 같은 IP헤더를 붙입니다.
버전 | 헤더길이 | 서비스 유형 | 전체 패킷 길이 | |
ID(일련번호) | 조각 상태 | 조각의 위치 | ||
TTL | 프로토콜 | 헤더체크섬 | ||
출발지 IP 주소 | ||||
목적지 IP 주소 |
이렇게 만들어 진 것을 IP패킷이라고 합니다.
전송단위: 패킷(Packet) 프로토콜 : IP, ICMP 장비: 라우터 , L3스위치
전송 계층
목적지에 신뢰할 수 있는 데이터를 전달하기 위해 필요한 계층으로, 오류를 점검하는 기능, 그리고 데이터의 목적지가 어떤 애플리케이션인지 확인하는 기능을 가집니다.
프로토콜로 TCP와 UDP가 있습니다.
TCP는 연결형 통신에 사용되는 프로토콜로 상대방이 데이터를 받았고, 해당 데이터를 보내도 되는지 서로 검증을 하면서 보내는 반면, UDP는 비연결형 통신에 사용되며 신뢰성과 정확성을 포기하는 대신 데이터를 효율적으로 빠르게 보내는 특징을 가집니다.
TCP헤더는 다음과 같습니다.
출발지 포트 번호(16비트) | 목적지 포트 번호(16비트) | ||
일련번호 | |||
확인응답번호 | |||
헤더길이(4비트) | 예약영역(6비트) | 코드비트(6비트) | 윈도우 크기(16비트) |
체크섬 | 긴급 포인터 | ||
옵션 |
UDP헤더는 다음과 같습니다.
출발지 포트 번호(16비트) | 목적지 포트 번호(16비트) |
길이(16비트) | 체크섬 |
전송단위 : 세그먼트 프로토콜: TCP, UDP 장비 : 게이트웨이, L4스위치
세션 계층
세션 계층은 응용 프로세스가 통신을 관리하기 위한 방법을 정의하며,
세션을 만들고 없애는 역할을 합니다.
세션이란?
프로세스들 사이에 메세지 교환을 통해 서로를 인식한 이후로부터 통신을 마칠때까지의 논리적 연결로,
가령 한 사용자의 로그인부터 로그아웃 할 때까지의 연결을 세션이라고 볼 수 있음
프로토콜 : SSH, TLS
표현 계층
응용 계층으로부터 받는 데이터를 하위 계층으로 보내기전에 통신을 위해 적당한 형태로 변환하고, 세션 계층에서 받은 데이터를 응용 계층에 맞게 변환하는 역할을 수행합니다. 코드변환, 구문검색, 데이터 암호화 혹은 복호화등의 기능을 담당합니다. 우리가 통상적으로 사용하는 인코딩을 그 예로 들 수 있습니다.
프로토콜 : JPEG, MPEG
응용 계층
사용자에게 보이는 부분으로 '최종 사용자'에게 가장 가까운 계층입니다. 사용자와 직접적으로 상호작용합니다. 예컨대 응용 프로세스 간의 정보 교환, 전자메일, 파일 전송등의 서비스를 제공합니다.
프로토콜 : DNS, FTP, HTTP
다음으로 TCP/IP 4 계층에 대해 설명해보겠습니다.
인터넷 환경에서 대부분은 IP를 기반으로 한 TCP통신으로 이루어져 있는데요, 이에 TCP/IP통신을 기준으로 만든 것이 바로 TCP/IP 4계층이라고 합니다. 이 TCP/IP모델은 위의 OSI 7계층과 달리 조금 더 간소화 된 모델입니다.
네트워크 인터페이스 계층
OSI 7계층에서 물리계층과 데이터링크계층과 대응되는 계층으로, 네트워크 드라이버와 같은 물리적인 TCP/IP 전달 및 수신과정을 담당하고 있는 계층입니다.
인터넷 계층
OSI 7계층에서 네트워크 계층과 대응되는 계층으로, 패킷을 목적지까지 효율적으로 전달하는 것만 고려하는 계층입니다. IP주소를 해석하고 목적지의 네트워크까지 잘 찾아가서 해당 목적지가 잘 받을 수 있도록 전송하는 역할만을 담당한다고 합니다.
전송 계층
OSI 7계층의 전송계층과 동일한 역할을 합니다. 전달되는 패킷의 오류를 검사하고 재 전송을 요구하는등 전반적인 제어를 담당하는 계층입니다.
응용 계층
OSI 7계층에서 세션 계층, 표현 계층, 그리고 응용계층이 다 대응되며, 사용자의 응용프로그램에서 데이터를 처리하는 계층입니다.
'CS > Computer Network' 카테고리의 다른 글
HTTP와 HTTPS 그리고 SSL HandShake (0) | 2021.06.28 |
---|---|
TCP 3 WAY, 4WAY HANDSHAKE (0) | 2021.06.27 |
브라우저에 www.naver.com을 입력하면 일어나는 일 - 2 (0) | 2021.05.01 |
www.naver.com이라고 입력하면 일어나는 일-1 (0) | 2021.04.17 |
HTTP 완벽 가이드 - 웹은 어떻게 동작하는가 서적 구입 (0) | 2021.03.20 |