it/httpCommunication
인터넷통신 (TCP / UDP)
hanjae
2022. 6. 29. 11:05
TCP란
- 서버와 클라이언트간에 데이터를 신뢰성 있게 전달하기 위해 만들어진 프로토콜이다
- 데이터를 네트워크통신때 노드를 찾아가는 과정에서 손실되거나 순서가 바뀌어서 전달될 수 있는데 TCP는 손실을
검색해서 교정하고 순서를 재조합 할수 있도록 도와준다
- TCP는 앞서 봤던 ip통신의 문제점을 해결해 준다
TCP특징
- TCP 3 way handshake (가상연결)
일단 연결을 한 다음에 데이터를 전송한다 - 데이터 전달 보증
데이터의 전달의 성공여부를 알수 있다 - 순서 보장
여러 데이터의 전달 순서를 보장받을 수 있다
TCP/IP 패킷 정보


실제로 TCP통신의 데이터이다
IP패킷은 출발지 목적지의ip주소 등을 받고 , 클라이언트와 서버의 컨넥션이 일어나면
보내지는 데이터(TCP세그먼트) 포트, 순서 , 데이터 등의 정보의 송수신이 발생이된다
3 way handshake

TCP의 통신방식은 클라이언트와 서버가 연결되야하는데 이 과정을 connection이라고 한다
클라이언트에서 SYN를 통해 접속요청을 보내고 서버에서는 접속요청(SYN)과 ACK요청수락을 보낸다
그리고 클라이언트에서는 서버에서부터 받은 ACK의 응답을 보고 수락(ACK)와 함께 데이터를 전송한다
그 후로는 connection이 유지되어 있으면 데이터를 전송하는 형식이 된다
데이터전달 보증

3way handshake이후에 데이터 전송시 서버에서 데이터를 잘 받았는지 상태코드로 보내준다
순서보장

서버에서 데이터를 받았을 때 전달받은 데이터의 순서가 다르다면 올바른 순서 이외의 데이터는 버리고 순서가 이상한 데이터부터
클라이언트한테 데이터를 재수신 요청을 한다
UDP란
- 비연결형 신뢰성이 없는 전송 프로토콜이다
- ip프로토콜 형식과 비슷하다
UDP특징
- 기능의 거의 없음
- 연결지향적 ≠ TCP 3 way handshake
- 데이터전달 보증하지 않음
- 순서보장 안함
- TCP에비해 빠름(3way handshake, 데이터전달보증, 순서보장 의 처리를 하지 않아서 데이터정보량, 순서가 단축)