전송층의 개요
전송층
네트워크층과 응용층 사이에 위치. 프로세스 대 프로세스 통신 을 제공한다.
네트워크층 프로토콜은 장치 위치까지만 찾아가지만, 전송층은 프로세스 적절한 프로세스로 전달할 수 있게 한다.
주소 지정: 포트 번호
클라이언트는 특정 서비스를 요청하기 위해 목적지 포트번호에 해당 서비스에 할당된 잘 알려진 포트 번호를 이용한다.
ICANN 범위
인터넷 할당 범위 관리 기관(ICANN, Internet Corporation for Assigned Names and Numbers) 은 포트 번호를 세 구간으로 나누었다.
- 잘 알려진(well-known) 포트: 0~1023 사이의 번호가 할당되었고 ICANN에 의해 통제된다.
- 등록 포트: 1024~49,151 범위. ICANN에 할당되거나 통제 받지 않고 중복 방지를 위해 ICANN에 등록만 되어 있다.
- 동작 포트: 49,152~65,535 범위. 통제도 안되고 등록도 안되어 있다. 어떠한 프로세스에 의해서도 사용 가능. 임시포트라고 한다.
소켓 주소
IP 주소와 포트 번호의 조합. 전송층 연결을 만들기 위해 서버 및 클라이언트의 프로세스를 정의
캡슐화와 캡슐제거
송신자는 전송층 프로토콜에 따라 상위계층인 응용층으로부터 데이터를 받아 캡슐화하고 전송한다.
수신자의 전송층에 도착하면 헤더를 제거해 캡슐을 해제하고 응용층으로 전달한다.
Multiplexing and demultiplexing
송신자는 Multiplexing 수행 -> 응용층의 여러 응용 프로그램에서 전송할 패킷을 하나의 흐름으로 모음.
수신자는 demultiplexing 수행 -> 패킷을 해당 응용 프로그램으로 나눠줌.
Flow control
송신자와 수신자의 균형이 맞도록 흐름(속도)을 제어하는 것. 전송 방법에 따라 필요할 수 있다.
Pushing
Pulling
전송층에서 flow control
Error control
전송층은 오류 제어를 통해 신뢰성을 제공할 수 있어야한다.
- 훼손된 패킷의 감지 및 폐기(수신측)
- 손실되거나 제거된 패킷을 추적하고 재전송(송신측)
- 중복 수신된 패킷을 확인하고 폐기(수신측)
- 손실된 패킷이 도착할 때까지 순서가 어긋난 패킷을 버퍼에 저장(수신측)
- 순서 번호 사용
flow와 error control의 결합
송신측
- 패킷이 전송되면 복사본을 메모리 영역에 저장하고 확인응답을 기다림
- 확인응답이 도착(잘 전송된 것을 확인)하면 패킷이 제거됨
수신측
- 순서번호를 가진 패킷이 도착하면 응용층에서 수신할 준비가 될 때 까지 메모리에 저장
- 패킷의 도착을 알리기 위해 확인응답 전송 (오류 없을 시)
버퍼는 슬라이딩 윈도 사용
비연결형 서비스
데이터의 관계를 고려하지 않고 각 데이터를 독립적인 하나의 단위로 간주
- 순서번호 없음 : 순서가 섞이거나 손실된 것을 알 수 없음 (흐름, 오류, 혼잡제어 제공 안됨)
연결 지향 서비스
연결 지향 프로토콜: 흐름 제어, 오류 제어 및 혼잡 제어 등이 제공될 수 있음.