개요 목적
TCP/IP와 OSI는 네트워크 참조 모델이다.
데이터를 두 모델처럼 계층화하고, 구성하면, 모든 컴퓨터에서도 데이터를 주고 받을 수 있다.
만약 애플 컴퓨터에서 사진 네트워크 데이터를 a-1로 구현했다. 그런데, 윈도우 컴퓨터에서는 사진 네트워크 데이터를 a-2로 구현한다면, 애플 사진 데이터를 읽을 수 없다.(참조 모델을 따르지 않았을 경우 생기는 문제이다.)
즉 어떤 기기에서, 두 참조 모델을 따라서 데이터를 구성하면, 지구 반대편에 있는 어떤 기기에서도 읽을 수 있는 네트워크 데이터를 만든 것이다.
TCP/IP와 OSI참조 모델 사이의 차이점은 OSI는 개념적 모델로 실질적 통신에는 사용되지 않는다. TCP/IP는 실질 네트워크 통신에 사용되는 모델이다.
두 모델이 어떤 계층으로 이루어져 있고, 각 계층에서 데이터에 어떤 처리를 하는 지 알아보자.(이 처리들을 완료한 데이터는 어떤 기기하고도 네트워크 통신이 가능하다.)
OSI 7계층과 장치
7계층 - 응용 계층(Application Layer)
편지지를 사용하여, 글을 작성한다.
- 사용자와 밀접한 어플리케이션을 통해서, 데이터를 입력 받거나, 데이터를 보여주는 계층이다.
→ 구글 메일에서 메일을 작성한다. 아니면 구글 메일에서, 메일을 읽는다.
<관련 장치>
L7 스위치 - 로드밸런서라고도 하며,(Application Load Balancer) 서버의 부하를 분산하는 기기이다. 서버이중화, 서버 앞에 위치하기 때문에 보안상 도움을 준다. URL, 캐시, 쿠키들을 기반으로 트래픽을 분산할 수 있다. L4 스위치 또는 L7 스위치 모두 헬스 체크를 서버에 보내서 정상적인 서버와 비정상적인 서버를 판별한다.
6계층 - 표현 계층(Presentation Layer)
이미 정해진 방식으로 편지지 내용을 바꾼다.
한국어로 편지지 작성 → 공용어인 영어로 바꿈 → 중국인 친구는 영어를 중국어로 해석.
(한국어로 그대로 보내면, 다른 나라 사람은 이해하지 못함.)
- 표현의 차이가 있는 데이터를 정해진 방식이 있는 인코딩, 디코딩, 암호화, 압축화 진행
→ 사진 파일은 정해진 형식대로 압축해서 보냄 . 정해진 형식이 없으면 받은 사람은 이것이 동영상인지 사진인지 파악할 수 없다.
5계층 - 세션 계층(Session Layer)
- 전송 모드를 결정한다.(반이중, 전이중 , 단방향 통신)
반이중 통신 - 무전기처럼 양방향 통신은 가능하나, 한쪽이 말하면, 한쪽은 듣기만 가능
전이중 통신 - 양 방향에서 동시에 말하기 듣기 가능
단방향 통신 - 라디오처럼 한쪽에서는 전송만 한쪽에서는 수신만 가능
4계층 - 전송 계층(Transport Layer)
- 포트 번호를 설정하고, TCP통신인지, UDP통신인지 설정한다.
포트 번호란, 웹사이트 안에 다양한 프로세스들을 가르킨다. 네이버 ip주소를 가진 웹사이트는 다양한 프로세스들을 가진다. 기본적으로 웹페이지 정보를 주는 HTTP프로세스, 메일을 주고 받는 메일 프로세스, 파일 전송을 담당하는 프로세스. ip주소는 같지만, 포트 번호 차이로 네이버 웹사이트에 다양한 프로세스에 접근할 수 있다.
<관련 장치>
L4 스위치 - L7스위치 스위치 같은 로드 밸런스(Network Load Balancer) 기능을 수핸한다.
3계층 - 네트워크 계층(Network Layer)
- IP주소를 설정한다.
→ 아무리 멀리 떨어진 곳에 데이터를 보내더라도, 대략 그 위치를 파악할 수 있는 논리적 주소IP주소를 할당한다.
<관련 장치>
라우터 - 다른 네트워크에 존재하는 장치끼리 최적의 경로로 연결해주는 장치이다.
L3 스위치 - 라우터 기능과 같다.
2계층 - 데이터 링크 계층(Data Link Layer)
- MAC주소를 설정한다.
IP주소는 무한하지 않고, 한정적이다. 그래서 다른 컴퓨터라도 같은 IP주소를 할당 받을 수 있다. ARP 테이블은 IP와 MAC주소를 매칭한다. 그래서 MAC주소로 정확한 목적지를 설정할 수 있다.
<관련 장치>
L2 스위치 - MAC 주소 테이블을 관리하며, 연결된 장치로부터 패킷이 왔을 때 패킷 전송을 담당한다.
브리지 - 두 개의 근거리 통신망(LAN)을 상호 접속할 수 있도록 하는 연결한다.
1계층 - 물리 계층(Physical Layer)
- 전기 ↔ 데이터 신호 간의 교환을 어떻게 할 것인지 설정한다.
데이터 신호를 보내기 위해서는 컴퓨터에 나오는 데이터 신호를 아날로그 신호로(케이블이나, wifi)로 바꿔서 전송을 해야 한다. 0과1을 허공에 던진다고 네트워크 통신이 일어나지 않는다. 물리적 신호(전기신호)의 전송을 통해 실질적인 네트워크 통신이 이루어지는 것이다.
<관련 장치>
NIC - LAN 카드라고 하는 네트워크 인터페이스 카드(NIC, Network Interface Card)는 장치가 인터넷 연결되도록 하는 하드웨어 장치
+인캡슐레이션과 디캡슐레이션
인캡슐레이션이란, 데이터를 네트워크 전송을 위해 데이터를 포장하는 작업이다. 7→1계층으로 내려 오면서, 표준안에 맞게 데이터를 구성하고 정보를 붙힌다.
디캡슐레이션이란, 수신을 할 때, 정보에 감싸져서 온 데이터를 해석하는 작업이다. 1→7계층으로 올라가면서, 각 계층 별로 붙여진 정보를 해석한다.
TCP/IP

링크 계층 Network Access Layer
링크 계층은 전선, 광섬유, 무선 등으로 데이터가 네트워크를 통해 물리적으로 전송되는 방식을 정의합니다. 즉 디지털 신호를 아날로그 신호를 변환하는 하드웨어적 요소들을 지원한다.
그리고 MAC주소를 보내고자 하는 데이터에 할당한다.
PDU(protocol data unit) 메세지 단위는링크 계층:
프레임(데이터 링크 계층- MAC주소 헤더와 CRC/체크섬 트레일러가 붙은 조각)
비트(물리 계층)
인터넷 계층 Internet Layer
IP, ICMP, ARP가 대표적이며 한 노드에서 다른 노드로 전송 계층에서 받은 세그먼트 또는 데이터그램을 패킷화 하여 목적지로 전송한다.
ICMP ( Internet Control Message Protocol ) 는 노드와 노드 사이에서 통신이 잘되나를 확인할 때 쓰는 프로토콜이다. 이는 데이터를 교환하는데 사용되지 않는다.
아무리 먼 곳이라도 정보를 보내기 위해 논리적 주소 IP주소를 할당한다. 즉 출발지와 목적지를 정하는 엔드투엔드 통신의 역할을 담당한다.
PDU(protocol data unit) 메세지 단위는
패킷 (세그먼트에 SP와 DP가 포함된 IP 헤더가 붙은 형태의 조각)
전송 계층 Transport Layer
TCP, UDP가 대표적이며 애플리케이션계층에서 받은 메시지를 기반으로 세그먼트 또는 데이터그램으로 데이터를 쪼개고 데이터가 오류없이 순서대로 전달되도록 도움을 주는 층이다.
TCP(전송 제어 프로토콜 | UDP(데이터그램 프로토콜) | |
패킷 교환 방식 | 가상회선패킷교환방식 -가상회선을 설정한 후에 데이터를 순서대로 보낸다) | 데이터그램패킷교환방식 -데이터 순서 신경 쓰지 않고 그냥 보낸다. |
패킷 순서 보장 | O | X |
오류 검사 | 1.재전송 - 시간 초과 기간이 지나면 서버는 전달되지 않은 데이터에 대해 재전송 시도 2.체크섬 - 체크섭을 통해 무결성을 평가한다. |
체크섬 지원 |
헤더 길이 | (20~60)바이트 가변길이 | 8바이트 고정 길이 |
연결성보장 | 3 way handshake 연결성 보장 4 way handshake 연결 해제 보장 신뢰성있는 프로토콜이다. |
연결 보장하지 않지만, 자원 절약 효과와 전송 속도 빠른 장점이 있다. |
브로드캐스트지원 | X | | O |
PDU(protocol data unit) 메세지 단위는
세그먼트(TCP)
데이터그램(UDP)
애플리케이션 계층 Application Layer
0과 1로 들어온 데이터를 각 프로세스에 맞는 정보로 변환하여 사용자에게 보여준다.
ex) 01010110 이 유튜브 동영상 데이터이면 어플리케이션 계층을 통과하여, 싸이 뮤직비디오 동영상으로 재생 되는 것이다.
대표적으로 HTTP, SMTP, SSH, FTP 프로토콜이 이다. 웹 서비스 이메일 등 서비스를 실질적으로 사람들에게 제공한다.
PDU(protocol data unit) 메세지 단위는
메세지
TCP/IP MTU, MSS, PMTUD 용어 이해하기
MTU란
MTU(Maximum Transmission Unit)란 네트워크에 연결된 장치가 받아들일 수 있는 최대 데이터 패킷의 크기를 말한다. 이 크기를 기준으로 데이터는 쪼개져서 패킷화된다.
네트워크 경로 상에 있는 아무 장치나 MTU보다 패킷이 크면 그 패킷은 분할될 수도 있다.
분할 될 수 없는 경우가 있는데
IPv6는 분할 자체를 허용하지 않고 IPv4는 헤더에 flags라는 필드의 bit 값이 1(Don't Fragment)이면 분할을 허용하지 않느다.
라우터나 장치의MTU를 초과할때 이럴 경우 분할 할 수 없기 때문에 아에 전달을 하지 않을 수도 있다.
MTU와 MSS차이
MTU와 MSS의 차이를 보면 다음과 같이 MTU는 IP헤더와 TCP헤더의 크기까지 합치지만 MSS(Maximum Segment Size)는 데이터의 크기(payload의 크기)만을 가리킨다.
일반적으로 MTU는 1500바이트이며 MSS는 1460바이트 이다.
따라서 네트워크를 통해 데이터를 보낼 때 MTU가 1500이라도 데이터는 보통 1460바이트 이하의 크기로 보내야 전달이 된다.
PMTUD
PMTUD(Path MTU Discovery)는 수신자와 송신자의 경로 상에서 장치가 패킷을 누락한 경우 테스트 패킷의 크기를 낮추면서 MTU에 맞게끔 반복해서 보내는 과정을 말한다.
Reference
https://ko.gadget-info.com/difference-between-tcp-ip
:https://velog.io/@inyong_pang/OSI-7-%EA%B3%84%EC%B8%B5%EA%B3%BC-TCPIP-%EA%B3%84%EC%B8%B5
https://www.youtube.com/watch?v=aTPy201F0AA&ab_channel=KnowlliPop%EB%86%80%EB%A6%AC%ED%8C%9D
'Web Sever 개발과 CS 기초 > 네트워크 지식' 카테고리의 다른 글
URI와 URL 차이와 구조 (0) | 2022.12.19 |
---|---|
HTTP Client CP, DB외에 Connection Pool을 사용하는 곳 (0) | 2022.12.11 |
REST API, RESTFUL이란 (0) | 2022.09.18 |
리퀘스트 메소드와 HTTP 상태 코드 (0) | 2022.08.21 |
HTTP 프로토콜 이해와 HTTP 버전 별 특징 (0) | 2022.08.14 |