OSI 7계층과 TCP/IP 5계층은 네트워크 통신이 일어나는 과정을 설명하는 모델이다. OSI 7계층이 이론적인 접근이라 하면 TCP/IP는 실용적인 접근이라 할 수 있다.

컴퓨터 네트워크 통신이 일어나는 과정을 설명하는 표준 참조 모델이다.
각 통신 과정을 7개의 계층으로 나누어 설명한다. 각 계층마다 프로토콜이 존재하는데 이는 데이터를 주고 받기 위한 일종의 약속이다. 이런 프로토콜에 의해 하위 계층으로 갈수록 헤더가 붙으면서 데이터의 크기가 커진다.
user와 가장 가까운 계층으로 구글 크롬, 파이어폭스와 같은 응용 프로그램이 있다.
데이터 전송 단위: Data
프로토콜: HTTP, FTP, SMTP 등
데이터의 인코딩, 압축, 암호화 동작을 수행한다.파일의 확장자(.txt, .jpg)도 이와 관련된 프로토콜이다.
데이터 전송 단위: Data
프로토콜: LS/SSL, JPEG, MPEG
두 컴퓨터 사이의 연결을 유지 및 관리를 담당하는 계층으로 대화 통로의 역할을 한다. 데이터의 송수신 타이밍과 방법이 규정된다.(통신 세션의 생성, 관리, 종료를 담당한다)
데이터 전송 단위: Data
프로토콜:NetBIOS, RPC, PPTP
데이터의 신뢰성을 보장하고 흐름을 제어한다. TCP는 신뢰성 있는 데이터 전송, UDP는 빠른 데이터 전송을 목적으로 한다.
데이터 전송 단위: Segment(TCP), Datagram(UDP)
프로토콜: TCP, UDP
데이터를 전달하기 위해 논리적 주소인 IP를 사용해 EndPoint(사용자)간의 최적의 경로를 설정(라우팅)하고 패킷을 전달한다.
데이터 전송 단위: 패킷
프로토콜: IP, ICMP, ARP
같은 네트워크 안에서 프레임 단위로 안정적으로 데이터를 전송한다. 데이터를 일정한 크기로 나누고 시작/끝을 표시한다. 물리 주소인 MAC을 사용하여 장치 간 통신하는 상황에서 장치를 구분한다.
데이터 전송 단위: Frame
프로토콜: Ethernet, PPP, Wi-Fi (802.11), MAC
비트 데이터를 전기 신호로 전환한다.
데이터 전송 단위: Bit
프로토콜: UTP, 광케이블, 전기 신호

TCP/IP는 인터넷에서 실제로 사용되는 표준 네트워크 구조이다.
user와 가장 가까운 계층이자 직접 연결되는 계층으로 OSI의 세션, 표현, 응용 계층을 합친 것과 같다.
프로토콜: HTTP, FTP, SMTP, DNS
데이터의 송수신(end-to-end) 간 데이터의 신뢰성을 보장하고 연결을 설정하는 계층이다.
프로토콜
TCP는 데이터 전송 전에 3-way handshake를 통해 송신자와 수신자 사이의 통신 여부를 확인한다. 클라이언트와 서버는 총 3번의 패킷을 주고 받는다.

3-way handshake는 다음과 같이 진행된다.
- SYN(Synchronize): 클라이언트 -> 서버로 연결을 요청한다.
- SYN + ACK: 서버 -> 클라이언트로 수락 여부를 응답한다.
- ACK(Acknwoledge): 클라이언트 -> 서버로 확인했다고 응답한다.
이후 클라이언트와 서버의 연결이 설정되고 나면 TCP는 다음과 같은 역할을 한다.
- 응용 계층에서 받은 데이터를 쪼개서 세그먼트 단위로 만들어 전달한다.
- 각 세그먼트마다 고유 시퀀스 번호를 부여하여 수신자가 이를 보고 데이터의 순서를 파악할 수 있게 한다.
- 데이터를 수신할 경우 ACK를 전송하여 "데이터 잘 받았다."를 알린다. 이를 전송하지 않을 경우 송신자 쪽에서 데이터가 올바르게 전송되지 않았다 판단하여 재전송을 한다.
- 수신자의 버퍼 상태를 고려하여 데이터 전송량을 조절한다. 수신자는 Window Size를 통해 받을 수 있는 데이터 양을 알려준다.
- 네트워크의 혼잡이 감지되면 전송 속도를 줄여서 네트워크의 과부화를 방지한다.

TCP와 달리 신뢰성을 보장하지는 않지만 높은 속도로 데이터를 주고 받는다.
라이브 방송과 같이 데이터의 신뢰성 보다 속도가 중요한 상황에 사용한다.
데이터를 패킷 단위로 나누고 패킷의 IP주소를 설정하고 경로를 결정(라우팅) 후 전송한다.
프로토콜: IP, ICMP, ARP
데이터를 실제 물리 네트워크(와이파이, 케이블)를 통해 전송하다.
프로토콜: 이더넷, 와이파이
TCP/IP는 Physical(물리 계층)을 생략하기도 한다.(안 할 경우 5계층)
참고
https://huimang2.github.io/etc/iso-standard-7498
https://ddongwon.tistory.com/84