TCP/IP
![](https://velog.velcdn.com/images/parksegun/post/0d394d61-44ae-4df9-a2f4-d63acce62ff1/image.png)
TCP/IP 4계층
- OSI 7계층 : 데이터 통신에 필요한 계층의 역할을 정확하게 정의한 모델
- TCP/IP 4계층 : 더 실무적이면서 프로토콜 중심으로 단순화된 모델
_현재 OSI 7계층 보다는 TCP/IP 4계층이 더 많이 활용되고 있다. OSI 7계층이 이론적이라면 TCP/IP 4계층은 이론을 실제로 사용하는 느낌**
![](https://velog.velcdn.com/images/parksegun/post/cb991afd-edab-4271-b73b-6b788e2189cf/image.jpg)
구조
4층 : 애플리케이션 계층
3층 : 전송 계층
2층 : 인터넷 계층
1층 : 네트워크 접근 계층
Network Access Layer( OSI 7계층의 물리 계층 + 데이터 링크 계층)
- Node To Node 사이의 신뢰성있는 데이터 전송을 담당
- 알맞은 하드웨어로 데이터가 전달되도록 MAC 주소를 핸들링
MAC 주소 : 네트워크에 참여하는 장치를 식별하는 주소
- 네트워크 장치 제조업체가 할당
- 물리주소
IP 주소 : 네트워크에 참여하는 장치에 대한 연결을 식별
- ISP(KT,SKT, LG 등 인터넷 서비스 공급자)가 할당 - 논리 주소
IP는 최적의 경로를 찾아주는 라우팅을 하기 위한 주소이고, 실질적인 통신을 MAC주소로 가능
ARP : IP주소를 사용해서 MAC 주소를 알아오는 프로토콜**
RARP : MAC 주소를 사용해서 IP주소를 알아오는 프로토콜**
Internet Layer( OSI 7계층의 네트워크 계층)
- IP를 담당
- IP를 사용해서 데이터의 원천지와 목적지에 대한 정보를 첨부
- IP는 복잡한 네트워크 망에서 가장 효율적인 방법으로 데이터 조각들을 보내는 일을 담당
- 전달 여부와는 상관없이 경로를 설정하고 보내는 것에 집중
IP(Internet Protocol)
- 비 연결지향적
- 장치들이 서로 통신할 때 사용하는 데이터 이동간 규칙
- 라우팅 경로 설정
- 지정한 주소에 데이터 조각을 패킷이라는 통신 단위로 최대한 빨리 목적지로 보냄
- 순서와 누락에 상관하지않고 보내는 데 집중
추가적인 Protocol
- ICMP : IP제어, 메시지 기능 담당
- ARP
- RARP
Transport Layer(OSI 7계층의 전송 계층)
TCP(Transmission Control Protocol)
- 패킷(세그먼트) 단위 전송
- 연결지향적
- 신뢰할 수 있는 프로토콜
- 순서와 누락에 대한 해결
- TCP 데이터 안에 전송 제어, 순서, 정보 들이 저장되어있기 때문
- 3 way handshake로 잘 보내졌는지 여부 확인
- IP의 문제를 보완해주는 프로토콜
ex) HTTP, Email, File Transfer
UDP(User Datagram Protocol)
- 패킷(데이터그램) 단위 전송
- 비 연결지향적
- 누락, 순서 보장 하지 않음
- 단순하고 빠르게 보내는 것이 목적
- **IP와 거의 같다고 생각
- PORT와 체크섬(메시지 검증 데이터) 정도만 추가된 형태
- IP에서 기능이 거의 추가되지 않아서 최적화 및 커스터마이징 용이
ex) 실시간 동영상 서비스
Application Layer (OSI 7계층에서 5, 6, 7 계층)
- HTTP/ FTP를 담당
- 서버, 클라이언트 응용프로그램 동작을 담당
프로토콜
- DNS : DNS주소 -> IP 주소
- SNMP : 네트워크 장비를 관리 담당
- FTP : TCP 환경에서 파일 전송 담당
- TFTP : UDP 환경에서 파일 전송 담당
- HTTP : 웹에서 데이터 교환 담당
동작순서
![](https://velog.velcdn.com/images/parksegun/post/224f35a5-4447-419d-b77c-fe8427bd821e/image.png)
1. 애플리케이션 계층에서 웹 페이지를 보여달라는 HTTP 요청
2. 전송 계층에서 HTTP 메시지를 통신하기 쉽게 조각내고 안내번호와 포트번호를 붙여 전달
3. 네트워크 계층에서는 IP 패킷을 추가해서 전달
4. 네트워크 접근계층에서 수신지 MAC 주소와 이더넷 프레임 추가해서 전달
이더넷 : 시스템이 랜선 및 통신 포트에 연결되어 통신 가능한 네트워크 구조
- 같은 지역의 네트워크인 LAN을 유선으로 구현하는 기술
- 네트워크 만들기 안내서 같은 개념
_인터넷이 여러 작은 네트워크들이 서로 연결된 거대한 네트워크라면, 이더넷은 이러한 인터넷을 구성하고 있는 작은 네트워크를 구성하는데 필요한 기술
- 송신 준비 완료
네이버 접속 시나리오
- naver.com 입력
- DNS로 네이버 IP로 변경
- 응용계층에서 HTTP 메시지를 추가
- 전달계층에서 PORT(출발지-목적지), 제어, 순서, 검증 정보들을 추가
- 인터넷계층에서 IP 정보(출발지-목적지) 추가
- 네트워크 접근 계층에서 에서 MAC주소 추가
- 게이트웨이를 통해 인터넷 망에 접속
- 라우터를 통해 목적지를 찾아서 연결
- 네이버 서버에 접속하면 패킷을 하나하나 까면서 목적 데이터를 전달 후 다시 응답