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

남은열·2022년 4월 9일
0

모두의 네트워크

목록 보기
6/9
post-thumbnail

📌 전송 계층의 역할

  • 전송 계층은 데이터를 제대로 전달하는 역할을 하며, 오류를 점검하는 기능
    • 전송 계층: 신뢰할 수 있는 데이터를 순차적으로 전달하는 역할을 하므로 상위 계층들이 데이터 전달의 유효성이나 효율성을 신경 쓰지 않도록 한다.
    • 데이터가 중복되거나 누락되지 않고 오류 없이 순서에 맞게 전송되도록 관리
  • 전송 계층은 전송된 데이터의 목적지가 어떤 애플리케이션인지 확인
  • 연결형 통신은 신뢰할 수 있고 정확하게 데이터를 전송하는 통신 방식
    • 연결형(connection-oriented): 데이터를 교환하기 전에 연결을 맺고 데이터를 교환하는 동안 계속 연결을 관리하는 프로토콜의 한 형태
    • TCP(Transmission Control Protocol, 전송 제어 프로토콜)
  • 비연결형 통신은 신뢰성을 보장하지 않지만 효율적으로 데이터를 전송하는 방식
    • 비연결형(connectionless): 연결(connection)에 대한 초기화 과정이 없는 통신
    • UDP(User Datagram Protocol, 사용자 데이터그램 프로토콜)
  • 대역폭: 정해진 시간 동안 전송될 수 있는 데이터의 양(주로 속도를 의미)을 의미. 대역폭은 제한적

📌 TCP의 구조

  • 전송 계층에는 TCP 헤더가 붙는다.
  • 세그먼트: TCP 헤더가 붙은 데이터
  • 연결(connection)을 확립하기 위해 TCP 헤더에 있는 코드 비트를 사용
    • 연결: TCP 통신에서 정보를 전달하기 위해 사용되는 가상의 통신로로 연결을 확립하고 데이터를 전송
  • 3-way 핸드셰이크: TCP 통신에서 사용하는 신뢰성을 제공하기 위한 통신 방식
    • 컴퓨터 간에 연결을 맺기 위한 초기화 과정으로 세 단계로 되어 있어서 three-way라 함.연결 확립을 위해 패킷 교환을 세 번 하는데 이를 3-way 핸드셰이크라 함.
  • 통신을 하려면 컴퓨터 2에게 허가를 받아야 하므로, 먼저 컴퓨터 1에서 컴퓨터 2로 연결 확립 허가를 받기 위한 요청(SYN)을 보낸다.
  • 컴퓨터 2는 컴퓨터 1이 보낸 요청을 받은 후에 허가한다는 응답을 회신하기 위해 연결 확립 응답(ACK)을 보낸다. 동시에 컴퓨터 2도 컴퓨터 1에게 데이터 전송 허가를 받기 위해 연결 확립 요청(SYN)을 보낸다.
  • 컴퓨터 2의 요청을 받은 컴퓨터 1은 컴퓨터 2로 허가한다는 응답으로 연결 확립 응답(ACK)을 보낸다
  • 연결을 확립할 때는 ‘SYN’과 ‘ACK’를 사용하고 연결을 종료할 때는 ‘FIN’과 ‘ACK’를 사용
  • 연결 종료
    • 컴퓨터 1에서 컴퓨터 2로 연결 종료 요청(FIN)을 보낸다.
    • 컴퓨터 2에서 컴퓨터 1로 연결 종료 응답(ACK)을 반환한다.
    • 또한 컴퓨터 2에서도 컴퓨터 1로 연결 종료 요청(FIN)을 보낸다.
    • 컴퓨터 1에서 컴퓨터 2로 연결 종료 응답(ACK)을 반환한다.

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

  • 3-way 핸드세이크 이후 데이터를 전송할 때는 TCP 헤더의 일련번호와 확인 응답 번호가 사용됨
    • 3-way 핸드세이크를 하는 동안 서로의 윈도우 크기 확인
  • 재전송 제어: 데이터를 재전송하는 것
  • 버퍼: 수신한 세크먼트(데이터)를 일시적으로 저장하는 장소
  • 오버플로: 데이터 크기가 버퍼 크기를 넘어서는 것
  • 윈도우 크기: 버퍼 용량의 크기

📌 포트 번호의 구조

  • 포트 번호는 어떤 애플리케이션인지 구분하는 역할
    • 애플리케이션은 각각 포트 번호가 있어서 다른 애플리케이션과 구분
    • 데이터를 전송할 때는 상대방의 IP 주소가 필요하지만, 어떤 애플리케이션이 사용되고 있는지 구분하려면 TCP는 포트 번호가 필요
  • 웹 브라우저로 접속할 때 웹브라우저에는 임의의 포트가 자동으로 할당포트 번호는 0~65535번을 사용한다. 0~1023번은 잘 알려진 포트(well-known ports)라고 하고 1025번 이후는 랜덤 포트라 한다.

📌 UDP의 구조

  • UDP는 데이터를 효율적이고 빠르게 보낼 때 사용되는 프로토콜
  • UDP는 UDP 헤더가 있지만 TCP 헤더에 비해 간단
  • UDP 데이터그램: UDP 헤더가 있는 데이터
  • UDP는 랜에서 불특정 다수에게 브로드캐스트로 데이터를 일괄 전송
profile
성장하는 예비 개발자

0개의 댓글