what? 인터넷에서 데이터를 송수신하는 전송계층의 프로토콜이다.

where? 컴퓨터의 프로토콜 스택안에 TCP,UDP가 LAN카드(실제 케이블 신호 송수신)와 함께 있다.

 

*프로토콜 스택 

통신을 위한 규약의 집합이다. 내부에 메모리가 있고, 여기에 각 층의 제어정보를 기록한다. 이 메모리 영역이 소켓이다. 

즉, 소켓을 만든다는 것(앱층에 소켓 호출,ex 자바 소켓함수)은 이 메모리영역에 제어정보(IP,포트번호 등)를 추가하고 버퍼메모리를 준비하는 등의 작업을 하는 것이다. 

서비스 정의(HTTP,FTP,SMTP..)

 

데이터전송 신뢰성 보장(TCP.UDP)

 

패킷 전달 경로를 결정(IP)

 

패킷을 보내는 것 지원(과부하 안걸리게 조절 등)(이더넷)

 

유무선으로 데이터 송수신(IEEE)

 

-송신측 기기의 프로토콜 스택 동작 순서: 앱->...->물리 

-수신측 기기의 프로토콜 스택 동작 순서: 물리->...->앱

 

=>TCP가 제어정보를 기록한 헤더를 만들고, 이를 IP담당에 보내서 송신 의뢰를 한다. 그럼

IP에선 서버측 IP 담당부분에 전달하고 그 친구는 헤더를 TCP에 보낸다.TCP는 조사하고 소켓에 정보를 기록하고,

네트워크 상태를 진행중으로 바꾼 뒤 ACK를 돌려보낸다. //이전 포스팅 참고 

 

 

 

*UDP*

신뢰성을 보장하지 않음. 즉, 연결에 대한 사전 설정을 하지 않고, 일단 보낸다. 서버로부터의 응답이 손실되면 클라이언트는 TIMEOUT 되어 다시 보내는 방식이다.

->비연결형 프로토콜

->짧게 조회하는 DNS서버에 대한 조회, 성능 중요한 파일전송,스트리밍 서비스

->IP 데이터그램을 캡슐화 (user datagram protocol)

->속도 빠름

->헤더의 체크섬 등으로 최소한의 오류만 검출

->연결이 없어서 서버소켓과 클라이언트 소켓의 구분이 없다

->소켓 대신 ip를 기반으로 데이터를 전송한다

 

 

*TCP*

3-hand shake를 사용해서 연결하고, 4-hand shake로 해제하여 신뢰성을 보장함-> 메일 등 일반적인 앱 데이터 수신

->연결형 프로토콜(대부분 순차적인 데이터 송수신이 필요하기 때문에 UDP에서 발전된 것이다)

->송신자,수신자 모두 소켓을 생성해야한다(양방향 프로토콜)

->속도 느림

->손실된 경우 재전송 요청을 하기 때문에 스트리밍 서비스에 불리하다

 

 

 

 

 

 

 

 

'Basic > Network' 카테고리의 다른 글

http와 https의 차이  (0) 2020.02.06
TCP 3 way handshake  (0) 2020.02.03
웹 통신 흐름  (0) 2020.02.01
Http 메소드 (Get,Post,Delete,Header..)  (0) 2020.01.31
RestAPI  (0) 2020.01.19

+ Recent posts