1. 인터넷 프로토콜의 4계층
인터넷 프로토콜의 4계층
에 대해서 살펴보겠습니다.
계층 | 프로토콜 |
---|---|
애플리케이션 계층 | HTTP, FTP |
전송 계층 | TCP,UDP |
인터넷 계층 | IP |
네트워크 인터페이스 계층 | Empty |
인터넷 프로토콜은
해당 총 4개의 계층
으로 이루어져있고 애플리케이션 계층, 전송계층, 인터넷계층, 네트워크 인터페이스 계층
으로 구성되어있습니다.
2. 프로토콜 계층
-
애플리케이션
애플리케이션 계층
은웹 브라우저(크롬), 네트워크 , 게임, 채팅 프로그램
으로 구성되어있습니다. 그리고Socket 라이브러리
로 구성되어 있습니다. -
OS(Operation System)
OS계층은TCP, UDP, IP(Internet Protocal)
로 구성되어 있습니다. -
네트워크 인터페이스
LAN 드라이버, LAN 장비, LAN카드
네트워크 인터페이스
에서 LAN카드
를 통해 인터넷에 접근
하게 되고 서버에 전송을 진행
하게 됩니다.
전송 과정
- 애플리케이션 계층에서 클라이언트가
"Request Message"
메시지를 생성
시킵니다. - 애플리케이션 계층에서 해당 메시지들을
Socket라이브러
를 통해 전달이 됩니다. - OS계층에서
TCP 정보를 생성
하여TCP세그먼트를 씌워 메시지 데이터를 포함
시킵니다. - OS계층에서
IP 패킷이 생성되고 TCP데이터를 포함
시킵니다. - 네트워크 인터페이스 계층에서
패킷 단위
로LAN 카드 장비
를 통해 인터넷(물리적정보에) 접속하게 되어 해당 찾고자하는서버에 요청
을 보내게 됩니다.
3. IP 패킷 정보
패킷정보는
출발지 IP랑 목적지 IP, 기타
등등의 값을 가지고 해당 전송데이터를 패킷
으로 감싸주는 형태로 진행됩니다.
4. TCP/IP 패킷 정보
IP 패킷: 출발지 IP, 목적지 IP, 기타 데이터
TCP 세그먼트: 출발지 PORT, 목적지 PORT, 전송제어, 순서, 검증 정보
IP패킷안에 TCP세그먼트를 감싸고
그안에 전송데이터
를 담아서 네트워크상에 전송
되게 됩니다.
즉, IP만으로는 해결할 수 없었던 출발지,목적지 PORT번호
가 있기때문에 전송제어나 순서보장, 검증정보를 통해 문제점들을 해결
할 수 있게 되었습니다.
5. TCP(Transmission Control Protocal)
TCP(Transmission Control Protocal)
는 전송 제어 프로토콜
이라고 불리어 오며 특징들에 대해서 살펴보도록 하겠습니다.
- 연결지향 -
TCP 3 Way handshake(가상 연결)
개념적으로만 연결된 것을 의미합니다. - 데이터 전달 보증
패킷 누락시 메시지를 못받는지를 알 수 있습니다.
데이터가 전송되고 데이터가 잘 받았는지를 확인할 수 있습니다. - 순서 보장
순서를 보장해줍니다.
예시
패킷1,패킷2,패킷3을 순서대로 보낸다고 가정
하면 패킷을 보내다가 노드의 의 접근이 바뀌어 순서가 정확하게 오지 않았을 경우
서버에서 해당 순서를 확인하여 잘못되었음을 판단을 하게 됩니다. 이때, 순서가 잘못 들어온 패킷이 3번
이라고 가정하면 해당되는 패킷의 순서
부터 다시 재전송을 요청
하게 됩니다. 즉, 최적화를 내부적으로 진행할 수 있습니다.
- 신뢰할 수 있는 프로토콜
현재는TCP가 대부분의 전송
에 있어서 사용되고 있으며매우 중요한 개념
입니다.
6. TCP 3way handshake
SYN:
접속을 요청합니다.ACK:
요청을 수락합니다.
- 클라이언트가 서버에게
SYN(Syncronized)의 connect 연결과정을 요청
합니다. - 서버는 해당 클라이언트부터 SYN을 전송받고 클라이언트에게
SYN+ACK(연결 상태)
를 함께 전송합니다. - 클라이언트는 서버로 부터 해당
SYN+ACK(연결상태)를 전송받고 다시 서버에게 잘 받았다는 의미로 ACK
을 전송시켜주게 됩니다. - 해당
ACK을 전송받은 서버
는 이때 잘 연결되었다는 의미로 알고데이터를 전송
시켜줍니다.
이러한 3way-handshake과정은
클라이언트와 서버의 신뢰관계(연결 상태를 확인)하는 과정을 진행하는 것이라고 생각하시면 됩니다.
7. UDP(User Datagram Protocal)
UDP(User Datagram Protocal)는
사용자 데이터그램 프로토콜
이라고 불리어옵니다.
TCP와 매우 대조적인 특징을 가지고 있는데 살펴보겠습니다.
- 연결지향 - TCP와는 다르게 TCP 3 way-handshake가 없습니다.
- 데이터 전달 보증이 되지 않습니다.
- 순서가 보장되지 않습니다.
- 데이터 전달 및 순서가 보장되지 않지만 매우 단순하고 빠른 특징을 가지고 있습니다.
즉, IP와 유사하지만 UDP에는
PORT와 체크섬(Checksum)
이 존재하게 됩니다. 체크섬(Checksum)은
메시지의 검증 데이터
를 일컫는 말입니다. 그리고 애플리케이션에서 추가작업이 필요로 될 수 있습니다.