모두의 네트워크 6장

유동헌·2022년 1월 18일
0

모두의네트워크

목록 보기
7/8

6장 전송 계층 : 신뢰할 수 있는 데이터 전송하기

전송 계층의 역할

Lesson23 전송 계층의 역할

물리 계층, 데이터 링크 계층, 네트워크 계층의 3계층이 있으면 목적지에 데이터를 보낼 수 있음. 하지만 데이터가 손상되거나 유실되더라도 이들 계층에서는 아무 것도 해 주지 않음.

전송 계층은 목적지에 신뢰할 수 있는 데이터를 전달하기 위해 존재. 오류를 점검하는 기능이 있음. 오류가 발생하면 데이터를 재전송하도록 요청.

해당 데이터가 어떤 애플리케이션에서 사용하는 데이터인지 판단, 어떤 목적지로 가는 것인지를 판단

  1. 목적지에 신뢰할 수 있는 데이터를 전달하기 위해 존재
  2. 홈페이지에서 사용을 하는지, 메일에서 사용을 하는지, 이걸 파악하는 계층

연결형 통신 : 신뢰성 / 정확성이 우선인 통신이라서 여러 번 확인하고 보냄

비연결형 통신 : 효율성이 우선인 통신, 확인 절차 없이 일방적으로 보냄 ex) 동영상 재생

전송 계층의 연결형 통신 프로토콜에는 TCP가 사용되고 비연결형 통신 프로토콜에는 UDP가 사용

TCP(Transmission Control Protocol)

UDP(User Datagram Protocol)

Lesson24 TCP의 구조

TCP : 신뢰성과 정확성을 우선으로 하는 연결형 통신 프로토콜

OSI 모델에서

TCP로 전송할 때 붙이는 헤더를 TCP 헤더라고 하고 이 헤더가 붙은 데이터를 세그먼트라고 함.

TCP헤더 + 데이터 = 세그먼트 : 목적지까지 데이터를 제대로 전송하기 위해 필요한 정보를 가지고 있다

데이터를 전송하려면 먼저 연결이라는 가장의 독점 통로를 확보해야함. 이 연결이 확립이 되어야 데이터를 전송할 수 있음.

어떻게 연결을 확립? TCP 헤더 안에, 코드비트 부분이 있음. 코드 비트는 TCP 헤더의 107번째 비트부터 112번째 비트까지의 6비트로 연결의 제어 정보가 기록되는 곳

코드 비트, 6비트, 코드 비트에는 연결의 제어 정보가 기록이 되고 각 비트 별로 역할이 있음. 초기값은 0, 활성화가 되면 1, 연결을 확립하려면 6개 중에서 SYN, ACK가 필요, SYN은 연결요청, ACK는 확인 응답

컴퓨터끼리 보내고, 받고 보내고, 다시 보내는 3번의 요청과 응답을 한다

이처럼 데이터를 보내기 전에 연결을 확립하기 위해 패킷 요청을 세 번 교환하는 것을 3-way 핸드셰이크라고 함

데이터를 주고 받고 나서, 연결을 끊을 때도 요청과 응답이 이루어짐 FIN ACK

연결을 확립할 때는 SYN 끊을 때는 FIN 보낼 때는 ACK

Lesson25 일련번호와 확인 응답 번호의 구조

3-way 핸드셰이크가 끝나고 실제 데이터를 보내거나 상대방이 받을 때는 TCP 헤더의 일련번호와 확인 응답 번호를 사용한다

일련번호 : 송신 측에서 수신 측에 알려주는 데이터의 순서, 몇 번째 데이터인지

확인 응답 번호 : 수신 측이 몇 번째 데이터를 수신했는지 송신 측에 알려주는 역할, 10번 받으면 11번 요청하면서 확인 응답이 이루어짐

주고 받은 구조이기 때문에 신뢰성 높음

데이터 손상이 발생해도 재전송 해줌

버퍼 : 세그먼트를 주고, 받아야 하기 때문에 효율이 낮음. 이를 해결하기 위해 버퍼라는 공간에 계속 세그먼트를 보내 그 다음에 한 번에 확인 응답을 반환하면 효율이 높아짐. 수신 측에서 대량으로 데이터가 전송되면 보관하지 못하고 넘쳐버림. 이를 오버플로라고 함. 그래서 오버플로가 발생하지 않도록 버퍼의 한계 크기를 알고 있어야 하고, 이것이 TCP 헤더의 윈도우 크기 값에 해당됨.

3-way 핸드셰이크 동안 서로의 윈도우 크기를 가늠

정리

3-way 핸드셰이크 이후 데이터를 전송할 때는 TCP 헤더의 일련번호와 확인 응답 번호가 사용된다

Lesson26 포트 번호의 구조

데이터의 목적지가 어떤 프로그램인지 구분하는 역할 → 포트번호

출발지 포트번호와 목적지 포트 번호가 필요함

포트 번호를 사용해 최종 목적지가 웹 브라우저인지 다른 프로그램인지 알아볼 수 있음

포트번호는 0 ~65535

0 ~ 1023번 포트는 주요 프로토콜이 사용하도록 예약이 되어 있음

각 애플리케이션과 포트번호가 정해져있음

동작하는 애플리케이션은 각각 포트 번호가 있어서 다른 애플리케이션과 서로 구분됨. 데이터를 전송할 때는 상대방의 IP 주소가 필요하지만 어떤 애플리케이션이 사용되고 있는지 구분하려면 TCP는 포트 번호가 필요. 창구 번호로 보자.

Lesson27 UDP의 구조

비연결형 통신

UDP의 장점은 데이터를 효율적으로 빠르게 보내는 것이라서 스트리밍 방식으로 전송하는 영상 서비스와 같은 곳에 사용

동영상을 TCP 데이터 통신으로 전송하면 수신을 확인하는데 시간이 너무 오래 걸림

UDP 헤더란?

UDP 헤더가 붙은 데이터를 UDP 데이터그램이라고 함

UDP는 확인 응답을 하지 않음

또한 UDP를 사용하면, 랜에 있는 컴퓨터나 네트워크 장비에 데이터를 일괄로 보낼 수 있음. 이 것을 브로드캐스트라고 함.

브로드캐스트 통신 : 불특정 다수에세 보내는 통신 방식?

UDP에서의 브로드캐스트는 목적지에 관계없이 랜에서 일괄적으로 보내지만 TCP는 목적지를 지정하지 않으면 안되기 때문에 일괄 통신을 할 수 없음

profile
지뢰찾기 개발자

0개의 댓글