Lesson 23 전송 계층의 역할
전송 계층의 역할
1.
오류를 점검하는 기능: 오류가 발생하면 데이터를 재전송하도록 요청
물리 계층, 데이터 링크 계층, 네트워크 계층이 있으면 목적지에 데이터를 보낼 수 있으나 데이터가 잘못 전달되거나 유실 될 수 있으므로 전송계층이 재대로 도착했는 지 확인
2.
전송된 데이터가 어떤 애플리케이션에 사용되는지 식별
연결형 통신과 비연결형 통신
a.
연결형 통신
•
신뢰성/정확성을 우선시
•
상대편과 확인해 가면서 통신하는 방식
•
TCP (Transmission Control Protocol) 프로토콜을 사용
b.
비연결형 통신
•
효율성을 우선
•
상대편과 확인절차 없이 일방적으로 데이터를 전송하는 방식
•
UDP (User Diagram Protocol) 프로토콜을 사용
⇒ 두 가지 통신은 이러한 장단점이 있기 때문에 신뢰할 수 있고 정확한 데이터 전송이 필요한 애플리케이션에는 연결형 통신을 사용하고, 효율적인 데이터 전송이 필요한 애플리케이션에는 비연결형 통신을 사용
Lesson 24 TCP의 구조
응용 계층부터 물리 계층까지 계층별로 데이터를 전달할 때 해더를 붙이고 분혜하는 캡슐화와 역캡슐화 과정에서 TCP 통신의 특징을 알아 볼 수 있다.
TCP로 전송할 때 붙이는 헤더를 TCP 헤더라고 하고, 이 TCP 헤더가 붙는 데이터를 세그먼트 (segment)라고 합니다. TCP 헤더는 목지까지 데이터를 제대로 전송하기 위해 필요한 정보를 가지고 있습니다.
코드 비트 (6비트)
•
SYN 연결 요청
•
ACK 연결 응답
•
FIN 연결 종료
3-way Handshake
연경형 통신은 제이터를 전송하기 전에 연결(connection)이라는 가상의 독점 통신로를 확보해야한다. 신뢰할 수 있는 연결을 하려면 데이터를 전송하기 전에 패킷을 세 번 교환한다. 이때, 코드 비트의 SYN과 ACK가 1로 활성화된다.
데이터를 전송한 후에는 연결을 끊기 위한 요청을 교환
연결을 종료할 때는 FIN과 ACK가 1로 활성화된다.
LESSON 25 일련번호와 확인 응답 번호의 구조
3-way Handshake가 끝나고 실제 데이터를 보내거나 받을 때는 TCP 헤더의 일련번호와 확인 응답 번호를 사용한다.
일렬번호 (Sequence Number)
•
송신 측에서 이 데이터가 몇 번째 데이터인지 알려준다
확인 응답 번호 (Acknowledgement Number)
•
몇 번째 데이터를 수신했는지 알리고, 다음 번호의 데이터를 요청한다
이 과정을 데이터를 전송이 완료될 때 까지 반복한다
제전송 제어
데이터가 손상되거나 유실된 경우에 일정 시간 동안 대기한 후에 데이터를 재전송합니다.
윈도우 크기와 버퍼
위 처럼 세그먼트 하나를 보낼 때 마다 확인 응답을 한 번 반환하는 통신은 효율이 높지 않다. 따라서 받은 세그먼트를 일시적으로 보관하는 버퍼 (buffer) 를 사용해서 세그먼트를 연속해서 보낼 수 있도록 합니다.
오버플로우 overflow
수신 측이 데이터를 대량으로 받아 처리하지 못하는 경우
윈도우 크기: 얼마나 많은 용량의 데이터를 저장해 둘 수 있는 지