-
[모두의 네트워크] 6장 전송 계층 : 신뢰할 수 있는 데이터 전송하기CS지식 2022. 6. 16. 11:44
23. 전송계층의 역할
OSI 모델 4계층인 전송 계층
네트워크 계층 : 다른 네트워크로 데이터를 전송하려면 라우터가 필요, 라우터의 라우팅 기능을 사용하여 전송.
만약, 라우팅 정보가 잘못되었거나 많은 라우터를 경유하는 도중에 라우터에 문제가 생기거나 패킷이 손상될 수도 있음
물리 계층, 데이터 링크 계층, 네트워크 계층의 3계층이 있으면 목적지에 데이터를 보낼 수 있지만
데이터가 손상되거나 유실되어도 이 계층들에서는 아무것도 해줄 수 없음
네트워크 계층은 목적지까지 데이터를 전송하고
전송 계층은 데이터가 제대로 도착했는지 확인하는 역할
- 전송 계층의 역할 : 목적지에 신뢰할 수 있는 데이터를 전달하기 위해 필요
1. 오류를 점검하는 기능
2. 전송된 데이터의 목적지가 어떤 애플리케이션인지 식별하는 기능
- 전송 계층의 특징
1. 신뢰성/정확성
데이터를 목적지에 문제없이 전달하는 것
=> 연결형 통신 => TCP 프로토콜
신뢰할 수 있고 정확한 데이터를 전달하는 통신
상대편과 확인해 가면서 통신
2. 효율성
데이터를 빠르고 효율적으로 전달하는 것
=> 비연결형 통신 : 동영상볼 때 사용 => UDP 프로토콜
효율적으로 데이터를 전달하는 통신
상대편을 확인하지 않고 일방적으로 데이터 전송
24. TCP의 구조
신뢰성과 정확성을 우선으로 하는 연결형 통신 프로토콜 TCP
- TCP 헤더
TCP로 전송할 때 붙이는 헤더
1~11 순으로 목적지까지 데이터를 제대로 전송하기위해 필요한 정보를 담고있다.
- 세그먼트
TCP 헤더 + 데이터
데이터를 전송하려면 연결을 확립하고 데이터를 전송해야한다.
- 코드 비트
TCP 헤더의 7번째 부분인데
107번째 비트부터 112번째 비트까지의 6비트로 연결의 제어 정보가 기록되는 곳이다.
코드 비트는 6개의 각 비트별로 역할이 있다.
초깃값은 0이고 비트가 활성화되면 1이 된다.
* 연결을 확립할 때
연결은 SYN과 ACK를 사용하여 확립할 수 있다.
신뢰할 수 있는 연결을 하려면 데이터를 전송하기 전에 패킷을 교환하는데 세 번을 확인한다. = 3-way 핸드셰이크
연결 요청 = SYN
확인 응답 = ACK
* 연결을 끊을 때
데이터를 전송한 후에는 연결을 끊기 위한 요청을 교환해야한다.
연결 종료 요청 = FIN
종료 응답 = ACK
25. 일련번호와 확인 응답 번호의 구조
3-way 핸드셰이크 이후 실제 데이터를 보내거나 상대방이 받을 때는
TCP헤더의 3번 일련번호, 4번 확인 응답 번호를 사용한다.
- 일련번호
TCP는 데이터를 분할해서 보내는데
일련번호는 송신 측에서 수신 측에 '이 데이터가 몇 번째 데이터인지' 알려준다.
전송된 데이터에 일련번호를 부여하면
수신자는 원래 데이터의 몇 번째 데이터를 받았는지 알 수 있다.
- 확인 응답 번호
수신 측이 몇 번째 데이터를 수신했는지 송신 측에 알려주는 역할
확인 응답
= 다음 번호의 데이터를 요청하는데 사용됨. 10번 데이터를 수신하면 11번 데이터를 송신 측에 요청하는 것이다.
- 재전송 제어
데이터를 전송하는 도중에 오류가 발생하면
일정 시간 동안 대기한 후에 재전송한다.
- 윈도우 크기
세그먼트하나를 보낼 때마다 확인 응답을 한 번 반환하는 통신은 효율이 높지 않다.
매번 확인 응답을 기다리는 대신
세그먼트를 연속해서 보내고 난 다음에 확인 응답을 반환하면 효율이 높아진다.
* 버퍼 : 세그먼트를 일시적으로 보관하는 장소
* 오버플로 : 수신 측은 대량으로 데이터가 전송되면 보관하지 못하고 넘쳐버린다.
오버플로가 발생하지 않도록 버퍼의 한계크기를 알고 있어야 하는데 그 값이 윈도우 크기다.
얼마나 많은 용량의 데이터를 저장해 둘 수 있는지
확인 응답을 일일이 하지 않고 연속해서 송수신할 수 있는 데이터 크기
윈도우 크기의 초깃값은 3-way 핸드셰이크를 할 때 판단한다.
26. 포트 번호의 구조
전송된 데이터의 목적지가 어떤 애플리케이션인지 구분하는 역할을 하는 포트번호
TCP 헤더의 1번 출발지 포트 번호, 2번 목적지 포트 번호가 필요하다.
TCP 헤더에 포트 번호가 있기 때문에 애플리케이션을 구분할 수 있다.
웹 브라우저로 접속할 때 웹 브라우저에는 임의의 포크가 자동으로 할당된다.
서버 측에서는 포트 번호를 정해 둬야 하지만 클라이언트 측은 정하지 않아도 된다.
27. UDP의 구조
전송 계층에서 효율적으로 통신할 수 있도록 돕는 비연결형 통신 프로토콜
- UDP 헤더
UDP 헤더가 + 데이터 = UDP 데이터 그램
UDP는 랜에 있는 컴퓨터나 네트워크 장비에 즉, 불특정 다수에게 데이터를 일괄 전송할 수 있다. = 브로드캐스트
'CS지식' 카테고리의 다른 글
개발자 도구 Application (0) 2022.06.24 [모두의 네트워크] 7장 응용 계층 : 애플리케이션에 데이터 전송하기 (0) 2022.06.16 [모두의 네트워크] 5장 네트워크 계층 : 목적지에 데이터 전송하기 (0) 2022.06.15 [모두의 네트워크] 4장 데이터 링크 계층 : 랜에서 데이터 전송하기 (0) 2022.06.14 [모두의 네트워크] 3장 물리 계층 : 데이터를 전기 신호로 변환하기 (0) 2022.06.14