트랜스포트 계층은 어떻게 통신 서비스를 제공하는가?
어떻게 신뢰성을 확보하는가?
- 트랜스포트 계층이 제공하는 서비스
- 트랜스포트 계층 프로토콜은 각기 다른 호스트에서 동작하는 애플리케이션의 프로세스 간의 논리적인 통신을 제공한다.
- 현재 실행되고 있는 다수의 프로세스를 구별하여 통신할 수 있다.
- end system 사이의 IP 전달 서비스를 end system에서 동작하는 두 프로세스 간의 전달 서비스로 확장한다.
- 트랜스포트 계층은 세그먼트를 검사하여 올바른 목적지의 프로세스의 소켓에게 전달한다. 호스트의 각 소켓은 포트번호도 할당받는다.
- 호스트 사이의 전달을 프로세스 사이의 전달로 확장하는 것을 트랜스포트 계층 다중화(Transport-layer multiplexing) 또는 역다중화(demultiplexing)라고 부른다.
- 트랜스포트 계층 세그먼트의 데이터를 올바른 소켓으로 전달하는 작업을 역다중화라고 한다.
- 출발지 호스트에서 소켓으로부터 데이터를 모으고 이에 대한 세그먼트를 생성하기 위해 각 데이터에 헤더 정보로 캡슐화하고 그 세그먼트들을 네트워크 계층으로 전달하는 작업을 다중화라고 한다.
- 소켓은 유일한 식별자를 가지고 있으며, 각 세그먼트는 세그먼트가 전달될 적절한 소켓을 가리키는 특별한 필드를 갖고 있다. 그 필드는 출발지 포트 번호 필드와 목적지 포트 번호 필드이다. 각각의 포트 번호는 0~ 65535까지의 16비트 정수다.
- TCP와 UDP는 헤더에 오류 검출 필드를 추가함으로써 무결성 검사를 수행할 수 있다.
- 통신 방법
- 송신: 송신 측의 트랜스포트 계층은 송신 애플리케이션 프로세스로부터 수신한 메시지를 세그먼트(segment)로 변환하고 트랜스포트 계층 헤더를 추가한다. 그 후 네트워크 계층으로 세그먼트를 전달한다. 네트워크 계층은 호스트 사이의 논리적 통신을 제공한다고 할 수 있다.
- 수신: 수신 측의 트랜스포트 계층은 네트워크 계층으로부터 전달받은 세그먼트를 데이터로 이용할 수 있게 만든다.
- 네트워크 계층의 IP 프로토콜이 패킷을 분실하거나 손상시켜도 애플리케이션에게 신뢰적인 데이터 전송 서비스를 제공할 수 있다. 또 네트워크 계층이 트랜스포트 계층 세그먼트의 기밀성을 보장할 수 없을 때도 메시지를 암호화할 수 있다.
- 트랜스포트 계층 프로토콜은 각기 다른 호스트에서 동작하는 애플리케이션의 프로세스 간의 논리적인 통신을 제공한다.
- UDP(User Datagram Protocol)
- 비신뢰적이고 비연결형인 서비스 제공
- 각각의 세그먼트는 독립적으로 취급이 된다.
- TCP에 비해 상대적으로 속도가 빠르다.
- 다중화와 역다중화 기능과 간단한 오류 검사 기능만을 제공한다.
- UDP를 사용하려면서 신뢰적인 데이터를 전송하려면 애플리케이션 자체에서 확인응답 기능과 재전송 기능을 제공해야 한다. 이런 방식의 장점은 TCP의 혼잡 제어 메커니즘에 의해 전송률 억제를 강요당하지 않고도 신뢰적으로 통신할 수 있다.
- UDP 다중화와 역다중화
- UDP 소켓은 목적지 IP 주소와 목적지 포트 번호로 구성된 두 요소의 집합으로 구별된다.
- UDP 세그먼트 구조
- UDP 헤더는 2바이트씩으로 구성된 4개의 필드를 가진다. (4byte, 32bit)
- 출발지 포트 번호, 목적지 포트번호, 길이, 체크섬
- 체크섬은 세그먼트에 오류가 발생했는지를 검사하기위해 수신 호스트가 사용한다.
- UDP 헤더는 2바이트씩으로 구성된 4개의 필드를 가진다. (4byte, 32bit)
- 비신뢰적이고 비연결형인 서비스 제공
- TCP
- 신뢰적이고 연결지향형 서비스 제공
- TCP는 비신뢰적인 종단 간의 네트워크 계층(IP)의 바로 상위에 구현된 신뢰적인 데이터 전송 프로토콜이다.
- 신뢰적인 데이터 전송: 데이터가 순서대로 정확하게 전달되도록 보장
- 흐름제어
- 일련번호: 패킷마다 존재하는 sequence number 로 패킷이 재전송되었는지 확인, 전송 받은 패킷 순서 조정
- 확인응답: 비트 에러와 패킷로스가 없는지 확인하고 데이터가 제대로 도착했다고 승인 메시지를 보낸다.
- 타이머: 송신자가 데이터를 보낸 후 일정시간이 지나도 응답이 오지 않으면 재전송(ARQ) 요청
- stop and wait
- go-back-N
- selective-repeat
- 신뢰적이고 연결지향형 서비스 제공
Automatic Repeat reQuest(ARQ) 가 동작하기 위해 필요한 부가 프로토콜 기능
- 오류 검출 기능: 비트 오류가 발생했을 때 수신 측에서 오류 검출 가능.
- 수신자 피드백: 수신자가 송신자에게 긍정확인응답(ACK), 부정확인응답(NAK) 을 통해 수신 여부를 피드백한다.
- 재전송: 수신자가 받은 패킷에서 오류가 검출되면 송신자에 의해 재전송된다.
- TCP 혼잡 제어
- 너무 많은 전송자가 너무 많은 데이터를 한번에 너무 많이 전송하면 혼잡이 생기고 네트워크가 감당할 수 없다.
- TCP는 수신자가 받을 수 있을 만큼의 최대한으로 빠르게 보낼 수 있게 조절할 수 있다.
- 연결 수립시 maximum segment size를 결정한다.(MSS)
- 혼잡 제어 시 end to end 방식 사용
- 송신자 및 수신자가 자신이 보낸 데이터가 잘 도달하는지 본 후 적절한 행동을 취함.
- AIMD: 혼잡이 없을 경우 window size를 천천히 증가시키고 혼잡 감지시 window size를 절반으로 줄인다.
- TCP 다중화와 역다중화
- TCP 소켓은 출발지 IP주소, 출발지 포트번호, 목적지 IP주소, 목적지 포트번호로 구성된 4가지 요소의 집합으로 구별된다.
- 서버는 각기 다른 클라이언트가 보낸 세그먼트를 출발지 IP주소와 출발지 포트 번호로 구별한다.
- TCP 데이터 전송
- pipedlined transmission
'Network > 컴퓨터 네트워킹 하향식 접근' 카테고리의 다른 글
| [컴퓨터 네트워킹 하향식 접근] 컴퓨터 네트워크 보안 (0) | 2023.04.01 |
|---|---|
| [컴퓨터 네트워킹 하향식 접근] 6. 무선 및 이동 네트워크 (1) | 2023.03.19 |
| [컴퓨터 네트워킹 하향식 접근] 4. 네트워크 계층 (0) | 2023.02.18 |
| [컴퓨터 네트워킹 하향식 접근] 2. 애플리케이션 계층 (1) | 2023.01.28 |
| [컴퓨터 네트워킹 하향식 접근] 1. 컴퓨터 네트워크와 인터넷 (0) | 2023.01.08 |
댓글