TCP

신명철·2022년 2월 15일
0

네트워크

목록 보기
2/17

연결지향형 트랜스포트: TCP

인터넷 상에서 데이터를 메시지의 형태로 보내기 위해서 IP와 함께 사용하는 연결지향형 프로토콜

TCP : 패킷 추적, 관리
IP : 데이터 배달

  • TCP 는 TCP 헤더와 클라이언트 데이터를 하나로 만들어서 TCP 세그먼트를 형성한다.
  • 세그먼트는 Network Layer 로 전달되고 네트워크 계층 IP 데이터그램 안에 각각 캡슐화 되어서 송신된다.

TCP 특징

  • 전이중(full-duplex, 양방향) 서비스 제공
  • 점대점(Point to Point, 정확히 2개의 종단점을 갖고 있음) 서비스 방식
  • 연결형 서비스로 가상회선 방식 제공
    • 가상회선 방식?
      • 송신 측과 수신 측을 연결해서 패킷을 전송하기 위한 논리적 경로를 배정한다는 뜻
  • 3-way handshaking 을 통해 세션을 수립하고 연결을 설정
  • 4-way handshaking 을 통해 연결을 해제
  • 흐름제어, 혼잡제어, 오류제어를 통해서 신뢰성을 보장하지만 이 때문에 UDP 보다 느리다.
  • 데이터의 전송 순서를 보장하고 수신여부 확인 가능

신뢰적인 데이터 전달

오류를 제어하는 방법

  • 오류 검출과 재전송을 포함한다.
  • ARQ(Automatic Repeat reQuest) 기법을 사용해서 프레임이 손상되었거나 손실된 경우 재전송을 통해 오류를 복구한다.

Stop and Wait ARQ

  • 송신 측에서 1 개의 프레임을 송신하고, 수신 측에서 수신된 프레임의 에러 유무 판단에 ACK or NAK 를 보내는 방식이다.
  • 식별을 위해 데이터 프레임과 ACK 프레임은 각각 0,1 번호를 번갈아가며 부여한다.
  • 수신 측 데이터를 받지 못한 경우 NAK 를 보내고 송신 측은 NAK 를 확인하고 데이터를 재전송한다.
  • 만약 데이터나 ACK 가 분실된 경우 일정 시간 간격을 두고 타입아웃이 되면 송신 측은 데이터를 재전송한다.

Go-Back-n ARQ (GBN, 슬라이딩 윈도우)

  • 전송된 프레임이 손상되거나 분실된 경우, ACK 패킷 손실로 타임아웃이 발생한 경우 확인된 마지막 프레임을 재전송한다.
  • 이를 위해서 송신 측은 송신한 프레임들의 복사본들을 가지고 있어야 하고 ACK와 NAK를 각각 구별해야 한다.
  • ACK : 다음 프레임 전송
  • NAK : 손상된 프레임 자체 번호 반환
[NAK 프레임을 받은 경우]
1. 0~5 까지 데이터를 보냈다고 가정하자
2. 송신 측은 수신 측에서 보낸 ACK 프레임을 확인한 후에 데이터를 계속해서 보낸다
3. 수신 측은 데이터 프레임 2에서 오류를 발견하고 NAK2를 송신 측으로 보낸다
4. NAK2를 받은 송신 측은 데이터 프레임 2를 재전송한다
5. Go-Back-n ARQ의 특징은 데이터를 재전송 하는 부분이다. 
NAK(2) 를 받아서 프레임 2 이후의 모든 데이터를 재전송한다.

  • GBN ARQ의 특징은 모든 프레임의 재전송과 수신 측의 폐기이다.
  • 수신 측에서 데이터 프레임 2를 받지 못했기 때문에 수신 측에서는 데이터 2이후의 모든 데이터를 폐기하고, NAK2를 수신 측으로 보낸다.

  • 송신 측은 ACK 분실 파악을 위한 타이머를 가지고 있다.
  • 송신 측은 정해진 시간동안 ACK 를 받지 못하면 마지막으로 ACK 를 받은 데이터부터 재전송한다.

SR(Selective-Reject) ARQ

  • GBN ARQ 의 확인된 마지막 프레임 이후 모든 프레임을 재전송하는 단점을 보완한 기법이다
  • SR ARQ는 손상됐거나 손실된 프레임에 대해서만 재전송한다.
  • 이를 위해 별도로 데이터 재정렬을 수행해야 하고 별도의 버퍼가 필요하다
  • 수신 측에 버퍼를 두고 받은 데이터의 정렬이 필요하다
profile
내 머릿속 지우개

0개의 댓글