TCP/IP
IP ( Internet Protocol )
전송위치 특정 및 데이터분할/조립 + 양측 IP정보 저장
- 패킷( 데이터그램 )을 이용하여 정보를 주고받는데 사용하는 규약
- 네트워크 계층에 속하며, 호스트 주소지정 ( IP ) 과 패킷으로의 분할 및 조립을 담당
특징
- 비신뢰성
- 정보전달이 정상적으로 이루어졌는지 보장하지 않음
- 비연결성
- 데이터를 전송하기전에 특별한 과정을 필요로 하지않음
- 일단 주소가 특정되면 보내고본다
TCP ( Transmission Control Protocol )
전송된 데이터의 신뢰성 보증 + 양측 port정보 지정
- 전송받은 패킷데이터의 이상유무를 판단
- 전송 계층에 속하며, 세그먼트를 생성
- 데이터 송수신측 간의 연결이 확립되어야 데이터를 주고받음
특징
- 연결성
- 데이터 송수신측 간의 연결이 확립되어야 데이터 주고받기 가능
- 데이터를 주고받기전에 필요한 전처리과정 제공
- handshake 과정을 통해 연결 설정 및 해제
- 신뢰성
- 데이터의 손실확인 시 재요청
- 전송한 순서대로 전달받음을 보장
- 흐름 제어 / 혼잡제어 / 오류 감지
- 데이터의 처리속도 조절을 통한 오버플로우 방지
- 네트워크 내의 패킷 수 관리
3 way handshake
Connection을 수립하기 위한 검증
양측간에 정상적으로 통신이 가능한지 사전점검
4 way handshake
Connection을 종료하기위한 양측간의 확인
- FIN : 연결 종료 요청
- ACK : 요청 수락
Server는 Client의 ACK을 받으면 연결을 종료한다
Client는 FIN을 보내고나면 FIN-WAIT상태가 되며 Server의 FIN을 받으면 일정시간을 기다린 후 연결을 종료한다
UDP ( User Datagram Protocol )
Port번호만 알려줄테니 데이터 검증은 알아서 해
- TCP와 비교해서 Header크기가 줄어들었으며 데이터를 쪼개지않는다
- Application layer에서 잘라준다
- header가 작아진만큼 더 작은단위로 데이터를 전송하는게 가능해졌다
- 데이터 전송전에 연결을 수립하지 않는다 ( 전송속도가 빠르다 )
- TCP의 문제였던 HOLB의 문제가없어 HTTP/3.0 에서 사용된다
TCP와 비교하여 최소 데이터의 크기가 작고, 연결수립과정이 없으므로 더 빠른 전송이 가능하다
데이터가 정상적으로 동작했는지 확인하지 않기때문에 속도가 중요한 통신에서 사용하기좋다 ( SNS, 게임 )
알아두면 좋은 포트번호