티스토리 뷰
TCP(Transmission Control Protocol) : 데이터 전송과정의 컨트롤
- 연결지향형, 스트림 기반 소켓
TCP/IP 프로토콜 스택
# 총 네개의 계층으로 나뉜다. 즉, 데이터 송수신의 과정을 네개의 영억으로 계층화 하였다.
데이터 통신에 사용되는 프로토콜 스택은 7계층으로 세분회 되지만, 프로그래머의 관점에서는 4계층으로 볼 수 있다.
LINK 계층
- LAN, WAN, MAN과 같은 네트워크 표준과 관련된 프로토콜을 정의하는 영역
- 물리적인 연결에 대한 표준을 담당
IP 계층
- 목적지로 데이터를 전송하기위해 중간에 어떤 경로를 거칠지에대한 문제를 해결하는 계층
- 이 때 사용하는 프로토콜이 IP(Internet Protocol)
- IP자체는 비연결지향적이고 전송경로가 일정하지 않기때문에 데이터가 손실되거나 오류가 발생할 수 있음
- 오류발생에 대한 대비가 되어있지 않은 프로토콜
- 데이터 전송을 위한 경로의 검색을 해준다.
- IP만을 이용해 데이터를 전송한다면 A, B, C순서대로 패킷을 전송했다고 가정했을 때
- 먼저 전송한 A패킷 보다 뒤에 전송한 C패킷이 먼저 도달 할 수도 있다.
- 또한 B패킷은 유실될 수도 있고, 도달한 C패킷은 손상될 수도 있다.
TCP / UDP 계층
- 전송 계층
- IP계층에서 알려준 경로정보를 바탕으로 데이터의 실제 송수신을 담당
· TCP
- 신뢰성 있는 데이터 전송을 담당
- 그러나 비연결지향적 프로토콜인 IP를 기반으로 데이터를 전송한다
- 하지만 데이터를 주고받는 과정에서 서로 데이터의 주고 받음을 확인하고,
- 유실 또는 손상된 데이터에 대한 재전송이 이루어진다.
- 따라서 신뢰성 있는 데이터전송을 담당한다.
- IP의 상위계층에서 호스트대 호스트의 데이터 송수신 방식을 약속한 것이 TCP / UDP 이며
- TCP는 확인절차를 거쳐 신뢰성 없는 IP에 신뢰성을 부여한 프로토콜
APPLICATION 계층
- 소켓이라는 도구를 이용해 무엇인가를 만드는 과정에서 프로그램의 성격에 따라
- 클라이언트와 서버간의 데이터 송수신에 대한 약속(규칙) 들이 정해지기 마련인데
- 이를 가르켜 APPLICATION 프로토콜 이라고 한다.
- 대부분의 네트워크 프로그래밍은 APPLICATION 프로토콜의 설계 및 구현이 다수이다.
'NETWORK' 카테고리의 다른 글
4) TCP 서버 함수호출 순서 및 함수분석 (0) | 2018.04.24 |
---|---|
2) 소켓멤버분석 : sockaddr_in구조체 (0) | 2018.04.23 |
1) 소켓멤버분석 : sockaddr_in구조체 (0) | 2018.04.19 |