TCP / IP
패킷교환 방식(pack + bucket)
패킷교환 방식은 패킷이라는 단위로 데이터를 잘게 나누어 전송하는 방식으로 각 패킷에는 출발지와 목적지 정보가 있고 이에 따라 패킷이 목적지를 향해 가장 효율적인 방식으로 이동할 수 있다.
패킷 단위로 전송 하면 노드들은 목적지 IP에 도달하기 위해 서로 데이터를 전달하고 이를 통해 복잡한 인터넷 망 사이에서도 정확한 목적지로 패킷을 전송할 수 있다! (서버 또한 IP 패킷을 통해 클라이언트에게 응답 전달)
IP의 한계 (비연결성, 비신뢰성)
정확한 출발지 / 목적지를 파악할 수 있다는 점에서 IP가 적절한 통신 방법으로 보이지만 IP도 한계가 존재한다.
- 비연결성 : 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷을 전송함
- 비신뢰성 : 중간에 패킷이 사라질 수 있고, 패킷의 순서가 보장되지 않음
TCP와 UDP의 차이
TCP와 UDP는 TCP/IP의 전송계층에서 사용되는 프로토콜로 전송계층은 IP에 의해 전달되는 패킷의 오류를 검사하고 재전송 요구 등의 제어를 담당하는 계층이다.
TCP | UDP |
---|
연결지향형 프로토콜 | 비 연결지향형 프로토콜 |
전송 순서 보장 | 전송 순서 보장되지 않음 |
데이터 수신 여부 확인함 | 데이터 수신 여부를 확인하지 않음 (일방적) |
신뢰성은 높지만 속도가 느림 | 신뢰성은 낮지만 속도가 빠름 |
네트워크 계층 모델
예전의 경우 같은 회사에서 만든 컴퓨터 끼리만 통신이 가능했던 시절이 있었기 때문에 다른 회사의 시스템이라도 네트워크 유형에 관계없이 상호 통신이 가능한 규약, 즉 프로토콜(Protocol)이 필요했다. 그래서 ISO에서는 제조사에 상관없이 공통으로 사용할 수 있는 네트워크 표준 규격을 정의했다.
OSI 7계층 모델
OSI 7계층 모델의 목적은 표준화를 통하여 포트, 프로토콜의 호환 문제를 해결하고, 네트워크 시스템에서 일어나는 일을 해당 계층 모델을 이용해 쉽게 설명할 수 있고 네트워크 관리자가 문제가 발생 했을 때 이것이 물리적인 문제인지, 응용 프로그램과 관련이 있는지 등 원인이 어디에 있는지 범위를 좁혀 문제를 쉽게 파악할 수 있다.
- 1계층 물리 계층 : OSI 모델의 맨 밑에 있는 계층으로서, 시스템 간의 물리적인 연결과 전기 신호를 변환 및 제어하는 계층이다. 전기 신호를 전달하는데 초점을 두고, 들어온 전기 신호를 그대로 잘 전달하는 것이 목적이다.
- 2계층 데이터 링크 계층 : 네트워크 기기 간의 데이터 전송 및 물리주소(e.g. MAC 주소)를 결정하는 계층이며 주소 정보를 정의하고 출발지와 도착지 주소를 확인한 후, 데이터 처리를 수행한다.
- 3계층 네트워크 계층 : OSI 7 계층에서 가장 복잡한 계층 중 하나로서 실제 네트워크 간에 데이터 라우팅을 담당한다. 이때 라우팅이란 어떤 네트워크 안에서 통신 데이터를 짜여진 알고리즘에 의해 최대한 빠르게 보낼 최적의 경로를 선택하는 과정을 말한다. ex) IP 패킷 전송
- 4계층 전송 계층 : 컴퓨터간 신뢰성 있는 데이터를 서로 주고받을 수 있도록 하는 서비스를 제공하는 계층으로 컴퓨터간 신뢰성 있는 데이터를 서로 주고받을 수 있도록 하는 서비스를 제공하는 계층이다. 네트워크 계층에서 사용되는 패킷은 유실되거나 순서가 바뀌는 경우가 있는 데, 이를 바로 잡아주는 역할도 담당도 맡고있다.
- 5계층 세션 계층 : 세션 연결의 설정과 해제, 세션 메시지 전송 등의 기능을 수행하는 계층으로 양 끝 단의 프로세스가 연결을 성립하도록 도와주고, 작업을 마친 후에는 연결을 끊는 역할을 한다.
- 6계층 표현 계층 : 응용 계층으로 전달하거나 전달 받는 데이터를 인코딩 또는 디코딩하는 계층으로 일종의 번역기의 기능을 하는 계층이라 볼 수 있다.
- 7계층 응용 계층 : 최종적으로 사용자와의 인터페이스를 제공하는 계층으로 사용자가 실행하는 응용 프로그램(크롬)들이 여기에 속한다. ex) 이메일 및 파일 전송, 웹 사이트 조회
데이터의 캡슐화
- 캡슐화 : 데이터를 전송하는 쪽은 데이터를 보내기 위해서 상위 계층에서 하위 계층으로 데이터를 전달하는데 이때 데이터를 상대방에게 보낼 때 각 계층에서 필요한 정보를 데이터에 추가하는 것을 헤더(데이터링크 계층에서는 트레일러)라고 하고 이렇게 헤더를 붙여나가는 것을 캡슐화라고 한다.
- 역캡슐화 : 데이터를 받는 쪽은 하위 계층에서 상위 계층으로 각 계층을 통해 전달된 데이터를 받게되는데 이때 상위 계층으로 데이터를 전달하며 각 계층에서 헤더(데이터링크 계층에서는 트레일러)를 제거해 나가는 것을 역캡슐화라고 한다. (역캡슐화를 거쳐 마지막 응용 계층에 도달하면 드디어 전달하고자 했던 원본 데이터만 남게 된다)
OSI 4계층 모델
TCP/IP 4계층 모델은 OSI 모델을 기반으로 실무적으로 이용할 수 있도록 현실에 맞춰 단순화된 모델이다. 즉 실용성에 기반을 둔 현대의 인터넷 표준이 TCP/IP 4계층이라고 할 수 있다.
- 4계층: 어플리케이션 계층: OSI 계층의 세션 계층, 표현 계층, 응용 계층에 해당하며 TCP/UDP 기반의 응용 프로그램을 구현할 때 사용한다. ex) FTP, HTTP, SSH
- 3계층: 전송 계층: OSI 계층의 전송 계층에 해당하며 통신 노드간의 연결을 제어하고, 신뢰성 있는 데이터 전송을 담당한다. ex) TCP/UDP
- 2계층: 인터넷 계층: OSI 계층의 네트워크 계층에 해당하며 통신 노드 간의 IP 패킷을 전송하는 기능 및 라우팅을 담당한다. ex) IP, ARP, RARP
- 1계층: 네트워크 인터페이스 계층: OSI 계층의 물리 계층과 데이터 링크 계층에 해당하며 물리적인 주소로 MAC을 사용한다. ex) LAN, 패킷망 등에 사용됨
참고 글 : https://velog.io/@hidaehyunlee/TCP-%EC%99%80-UDP-%EC%9D%98-%EC%B0%A8%EC%9D%B4