Processing math: 100%
  • TCP 프로토콜의 윈도우와 흐름제어
    • 송신측과 수신측 사이에 데이터 처리 속도 차이(흐름)을 제어하기 위한 기법으로 데이터 처리 속도를 조절하여 수신자의 버퍼 오버플로우를 방지한다
      • 송신하는 곳에서 감당이 안되게 많은 데이터를 빠르게 보내 수신하는 곳에서 문제가 일어나는 것을 막는다.
      • 만약, 송신측의 전송량 > 수신측의 수신량 일 경우 전송된 패킷은 수신측의 큐 를 넘어서 손실 될 수 있기 때문에 송신측의 패킷 전송량을 제어하게 된다.
      1. Stop and Wait(정지 - 대기)
      2. - 매번 전송한 패킷에 대한 **확인 응답**을 받아야 그 다음 패킷을 전송할 수 있다. 이러한 구조로 인해 비효율적이란느 단점이 있다.
      3. Sliding Window(슬라이딩 윈도우)
      4. - 수신측에서 설정한 윈도우 크기만큼 송신측에서 확인 응답 없이 세그먼트를 전송할 수 있게 하여 데이터 흐름을 동적으로 조절하는 기법이다. 따라서 송신측에서는 ACK 프레임을 수신하지 않더라도 여러 개의 프레임을 연속적으로 전송할 수 있다. - 송신측에서 0,1,2,3,4,5,6,을 보낼 수 있는 프레임을 가지고 있고 수신자가 설정한 윈도우의 크기가 2라고 가정할 때, 데이터 0,1을 전송하면 슬라이딩 윈도우 구조는 2,3,4,5,6 처럼 변한다. 이때 만약 수신측으로부터 ACK라는 프레임을 받게 된다면 송신측은 이전에 보낸 데이터 0,1을 수신측에서 정상적으로 받았음을 알게 되고 송신측의 슬라이딩 윈도우는 ACK 프레임의 수만큼 오른쪽으로 경계가 확장된다. - Stop and Wait의 비효율성을 개선했다. - 페이징과 비슷한 개념 → 데이터를 일정 수로 나누어서 보낸다.
  • TCP 타이머
    • 오류제어
    • 오류 검출과 재전송을 포함한다. ‘테일’ 에 포함되어있다.
    • ARQ(Automatic Repeat Request) 기법을 사용해 프레임이 손상되었거나 손실되었을 경우, 재전송을 통해 오류를 복구한다. ARQ 기법은 흐름 제어 기법과 연관되어있다.
    1. Stop and Wait ARQ
    2. - 송신 측에서 1개의 프레임을 송신하고, 수신측에서 수신된 프레임의 에러 유무에 따라 ACK 혹은 NAK(NegativeAcknowdment)를 보내는 방식 - 식별을 위해 데이터 프레임과 ACK 프레임은 각각 0,1 번호를 번갈아가며 부여한다. - 수신측에 데이터를 받지 못했을 경우 NAK를 보내고, NAK를 받은 송신측은 데이터를 재전송한다. - 만약, 데이터나 ACK가 분실되었을 경우 일정 간격의 시간을 두고 타임아웃이 되면 송신측은 데이터를 재전송한다.
    3. Go-Back-n ARQ
    4. - 전송된 프레임이 손상되거나 분실된 경우 그리고 ACK 패킷의 손실로 인한 TIME_OUT이 발생한 경우, 확인된 마지막 프레임 이후로 모든 프레임을 재전송한다. - 슬라이딩 윈도우는 연속적인 프레임 전송 기법으로 전송측은 전송된 프레임의 복사본을 가지고 있어야 하며, ACK와 NAK 모두 각각 구별해야 한다. - ACK : 다음 프레임을 전송 - NAK : 손상된 프레임 자체 번호를 반환 - **재전송 되는 경우** - 1. NAK 프레임을 받았을 경우 : 만약 수신측으로부터 0~5 까지의 데이터를 보냈다고 가정했을 때, 수신측에서 데이터를 받았음을 확인하는 데이터 오류 프레임 2를 발견하고 NAK2를 전송측에 보낸다고 해보자. NAK2 를 받은 전송측은 데이터 프레임 2가 잘못되었다는 것을 알고 데이터를 재전송한다. GBnARQ의 특징은 데이터를 재전송하는 부분이다. NAK(n)을 받아 데이터를 재전송한다. 2. 전송 데이터 프레임의 분실 : GBN ARQ의 특징은 확인된 데이터 이후의 모든 데이터 프레임 재전송과 수신측의 폐기이다. 수신측에서 데이터 1을 받고 다음 데이터로 3을 받게 된다면 데이터 2를 받지 못했으므로 수신측에서는 데이터 3을 폐기하고 데이터 2를 받지 못했다는 NAK2를 전송측에 보낸다. NAK을 받은 수신측은 기존에 받았던 데이터 중 NAK(n)으로 보냈던 대상 데이터 이후의 모든 데이터를 폐기하고 재전송받는다. ![images_jsj3282_post_48e4dec2-8c32-4f10-973a-79039eef4a29_다운로드 (5).png](<https://s3-us-west-2.amazonaws.com/secure.notion-static.com/0a62fd25-8f8b-40d4-bbc1-75419d7915dc/images_jsj3282_post_48e4dec2-8c32-4f10-973a-79039eef4a29_%EB%8B%A4%EC%9A%B4%EB%A1%9C%EB%93%9C_(5).png>) 3. 지정된 타임 아웃 내의 ACK 프레임 분실 : 전송측은 분실된 ACK를 다루기 위해 타이머를 가지고 있다. 또한 전송측에서는 이 타이머의 타임 아웃 동안 수신측으로부터 ACK를 받지 못했을 경우, 마지막으로 ACK된 데이터 이후 부터 재전송한다. ![images_jsj3282_post_a6eed3a8-c005-4742-8622-bf9ff8368111_다운로드 (4).png](<https://s3-us-west-2.amazonaws.com/secure.notion-static.com/5cb17fda-c907-422d-9f84-b915ccbc09d3/images_jsj3282_post_a6eed3a8-c005-4742-8622-bf9ff8368111_%EB%8B%A4%EC%9A%B4%EB%A1%9C%EB%93%9C_(4).png>) 즉, 이를 정리하자면 - 전송측은 NAK 프레임을 받았을 경우 NAK 프레임 번호부터 데이터를 재전송한다. - 수신측은 원하는 프레임이 아닐 경우, 데이터를 모두 폐기한다. - 타임아웃(ACK 분실)의 경우, 마지막 ACK된 데이터 이후 부터 재전송한다.
    5. SR(Selective-Reject) ARQ
    6. - GBn ARQ의 확인된 마지막 프레임 이후의 모든 프레임을 재전송하는 단점을 보완한 기법 - SR QRQ는 손상되거나 손실된 데이터 프레임만 재전송한다. - 그렇기 때문에 **별도의 데이터 재정렬을 수행해야 하며, 별도의 버퍼를 필요로 한다**. - **수신 측에 버퍼를 두어 받은 데이터의 정렬이 필요하다.**
  • UDP의 데이터 그램 형식 및 헤더구조 & 제공서비스 & 대표 응용사례
    • 데이터그램 형식 :
    • 헤더 형식 :
      • Source Port : 송신지의 포트번호
      • Destination Port : 목적지의 포트번호
      • Total Length : 헤더를 포함한 전체 데이터그램의 크기를 의미하는 필드
      • Checksum : 데이터그램의 오류를 확인하기 위한 필드
    이처럼 UDP는 속도를 떨어뜨리는 요소를 없애기 위해 TCP처럼 각종 흐름제어, 유제어, 혼잡제어를 하지 않으며 매우 간단한 헤더 구조를 가지고 있다.
    • 활용 분야
      • 스트리밍, 온라인 게임의 서버-클라이언트 통신 등

용어 정리


참고 자료

UDP (User Datagram Protocol)

'네트워크' 카테고리의 다른 글

TCP 프로토콜 1  (0) 2023.07.22
라우팅 프로토콜  (0) 2023.07.22
ICMPv4 & IGMPv2  (0) 2023.07.22
ARP & RARP  (0) 2023.07.22
인터넷 프로토콜  (0) 2023.07.22

+ Recent posts