오늘은 토x NEXT 코딩테스트를 보고 내일 있을 정보처리기사 시험 준비를 했다.
이미지 출처 : minho
Transmission Control Protocol. 전송계층에 위치한 연결지향적 프로토콜
연결지향적 프로토콜 : 클라이언트와 서버가 연결된 상태에서 데이터를 주고받는 프로토콜
클라이언트가 연결 요청을 하고 서버가 연결을 수락하면 통신 선로가 고정된다. 이 선로를 통해 모든 데이터가 순차적으로 전달된다.
전송 확인 작업을 수행한다. 패킷을 성공적으로 전송하면 ACK라는 신호를 날리는데, 신호가 제시간에 도착하지 않으면 Timeout이 발생해 손실이 발생한 패킷을 다시 전송한다.
-> 정확하고 안정적인 데이터의 전달 가능
데이터 전송 순서가 보장되고 신뢰성 있는 데이터를 전송한다.
데이터의 경계를 구분하지 않느다.
1 : 1 통신만 가능하고 데이터를 보내기전에 반드시 연결이 형성되어야 하며, 고정된 통신 선로가 최단선이 아니면 UDP보다 전송속도가 느리다는 단점이 있다.
기본 헤더크기는 20바이트로 최대 60바이트까지 확장할 수 있다.
흐름제어 : 송신 및 수신 속도를 일치시킨다. 수신 한도를 넘는 과잉 패킷 입력으로 패킷 분실이 일어나지 않도록 패킷 흐름을 조절하는 기법이다.
정지-대기 기법(수신자가 에러 체크 후 에러가 발생한 데이터부터 다시 받는 기법), 슬라이딩 윈도 기법(수신 측에서 설정한 윈도의 크기만큼 ACK 없이 전송해 동적으로 흐름을 제어하는 기법)
혼잡제어 : 네트워크가 혼잡하다고 판단되면 송신율을 감속한다. 패킷 수가 과도하게 증가하는 현상을 방지한다.
TCP 헤더
User Datagram Protocol. 전송계층에 위치한 비연결지향적 프로토콜
비연결 지향적 : 데이터를 주고받을 때 연결 절차를 거치지 않고 발신자가 일방적으로 데이터를 보내는 방식
연결 과정이 없어 TCP보다 빠르게 전송하지만 신뢰성은 떨어진다.
발신자가 패킷을 순차적으로 보내더라도 서로 다른 통신선로를 통해 전달되어 패킷의 순서가 보장되지 않고 최악의 경우 패킷이 유실될 수 있다.
데이터의 경계를 구분한다.(데이터그램 방식)
신뢰성 없는 데이터를 전송한다. 데이터 재전송과 순서유지를 위한 작업을 하지 않는다.
의미있는 서버를 구축하기 위해 패킷관리가 필요하다.
패킷 오버헤드가 적어 네트워크의 부하는 TCP보다 적다.
빠른 요청과 응답이 필요한 스트리밍, 통화 등에 활용된다.
1 : 1, 1 : N, N : N 통신 다 가능하다.
헤더
8바이트 고정크기의 경량 헤더 구조