2022-CS-STUDY-TEAM / CS-STUDY

CS 스터디
2 stars 1 forks source link

TCP, UDP 질문 목록 #11

Open choigwanho opened 1 year ago

choigwanho commented 1 year ago

<관호>

  1. TCP와 UDP의 차이에 대해 설명
  2. 왜 HTTP는 TCP를 사용하는지*
  3. Sliding Window의 크기가 어떻게 결정되는지*
  4. TCP handshake의 과정

<서윤>

  1. TCP/IP의 흐름 제어 방식
  2. DNS에서 왜 UDP를 사용하는지
  3. LAN과 WAN의 차이*
  4. UDP헤더에서 Cheaksum이 어떻게 동작하는지
  5. 스위칭에서 경로를 결정하는 기준*
  6. NIC와 무선 인터페이스 결정 기준*

<효민>

  1. 서브넷 마스크가 뭔지
  2. TCP handshake 왜 사용하는지
  3. IPv4, IPv6 왜 사용하는지

<남곤>

  1. TCP 의 풀 네임
  2. UDP가 비신뢰성인데 어떻게 에러를 제어할 수 있는지*
  3. 혼잡제어를 관리하는 방법은 무엇이 있는지*
  4. TCP reliable network 보장

<승준>

  1. TCP의 특징
  2. 흐름제어와 혼잡제어 대해서 설명
modisfive commented 1 year ago

<남곤>

  1. TCP의 풀 네임 Transmission Control Protocol

  2. UDP가 비신뢰성인데 어떻게 에러를 제어할 수 있는지 개발자가 직접 신뢰성을 보장하도록 할 수 있다.

  3. 혼잡제어를 관리하는 방법은 무엇이 있는지 혼잡제어를 관리하는 방법으로는 AIMD, Slow Start, Fast Retransmit, Fast Recovery가 있다.

seoyoon130 commented 1 year ago

<서윤>

mango51 commented 1 year ago

<효민>

서브넷 마스크 : 클래스리스 기반 IP 주소에서 네트워크 주소와 호스트 주소를 구분하기 위한 구분자

32비트의 숫자로 ‘0’의 비트는 호스트 부분을 나타내고 ‘1’의 비트는 네트워크 부분을 구분하여 IP 주소를 네트워크 및 호스트 주소와 분리 기본적으로 자체 32비트 숫자를 이용하여 IP 주소를 마스킹하기 때문에 여기서 ‘마스크’라는 단어 이용

TCP handshake 왜 사용하는지 : 데이터를 전송하기 전에 먼저 정확한 전송을 보장하기 위해 상대방 컴퓨터와 사전에 세션을 수립하는 과정

IPv4, IPv6 왜 사용하는지 : 주소 공간 부족으로 더 많은 공간 확보하기 위해서 개선한 인터넷 프로토콜 IPv6

IPv6 장점 (IPv4와 비교했을 때)

SeungJun commented 1 year ago
  1. TCP의 특징

    • 두 개 엔드포인트 사이에 견결을 먼저 맺고 데이터를 주고 받는다
    • 양방향 데이터 통신을 하고 바이트 스트림을 사용한다.
    • 송신자가 보낸 순서대로 수신자가 데이터를 받는다.
    • 데이터를 송신하고 수신자로부터 ACK을 받지 않으면 송신자 TCP가 데이터를 재전송한다.
    • 수신자가 자신이 받을 수 있는 바이트 수를 송신자
    • 네트워크 정체를 방지하기 위해 recevie window와 별도로 congestion window 사용
  2. 흐름제어와 혼잡제어 대해서 설명

    • 흐름제어 : 송신측과 수신측의 데이터 처리 속도 차이를 해결
    • 혼잡제어 : 송신측의 데이터 전달과 네트워크 데이터 처리 속도 차이를 해결하기 위한 기법
choigwanho commented 1 year ago
  1. TCP와 UDP의 차이에 대해 설명
    • TCP는 연결 지향형 프로토콜이고 UDP는 데이터를 데이터그램 단위로 전송하는 프로토콜입니다.
    • TCP는 가상 회선을 만들어 신뢰성을 보장하도록(흐름 제어, 혼잡 제어, 오류 제어)하는 프로토콜로 따로 신뢰성을 보장하기 위한 절차가 없는 UDP에 비해 속도가 느린편입니다.
    • 하지만 UDP도 신뢰성을 UDP자체에서 보장하지 않는 것 뿐이지, 개발자가 직접 신뢰성을 보장하도록 할 수 있습니다. 그래서 HTTP/3은 QUIC이라는 프로토콜을 기반으로 하는데, QUIC은 UDP를 기반으로 합니다. 즉, UDP 자체는 신뢰성을 보장하지 않지만, 추가적인 정의를 통해 신뢰성을 보장받을 수 있습니다 .
  2. 왜 HTTP는 TCP를 사용하는지*
    • HTTP의 경우 클라이언트와 서버가 HTTP 요청/응답을 교환하려면 먼저 TCP 연결을 설정해야 합니다. 따라서 HTTP는 성공적으로 작업을 수행하기 위해 TCP 표준에 의존합니다.
  3. Sliding Window, Segment의 크기가 어떻게 결정되는지*
    • Window Size는 수신 측에서 크기를 결저앟고 송신 측에서 이를 따릅니다. 초기에 수신 버퍼 크기를 설정하고 이 값을 사용하는데 수신 버퍼에 처리하지 않은 세그먼트 바이트를 뺀 값으로 설정합니다.
    • 초기 Window size를 MSS로 설정하고 수신 후에 MSS만큼 증가합니다. MSS(Maximum Segment Size)는 MTU(Maximum Transport Unit)의 크기에 의해 결정됩니다. MSS의 크기는 MTU - IP Header zmrl - TCP Header 이고 예를 들어, MTU가 1.5MB라면 Segment는 천 몇백개 이상으로 분해되어 전송됩니다.
  4. TCP Handshake 과정에 대해 설명*
    • TCP가 가상회선을 만들고 제거하는 과정에 해당합니다.
    • TCP 3 way handshake는 가상회선을 수립하는 단계입니다. 클라이언트는 서버에 요청을 전송할 수 있는지, 서버는 클라이언트에게 응답을 전송할 수 있는지 확인하는 과정입니다. SYN, ACK 패킷을 주고받으며, 임의의 난수로 SYN 플래그를 전송하고, ACK 플레그에는 1을 더한값을 전송합니다. 정확한 순서는 SYN(n) → ACK(n+1), SYN(m) → ACK(m+1) 순으로 일어납니다.
    • TCP 4 way handshake는 TCP 연결을 해제하는 단계로, 클라이언트는 서버에게 연결해제를 통지하고 서버가 이를 확인하고 클라이언트에게 이를 받았음을 전송해주고 최종적으로 연결이 해제됩니다. 단, 서버에서 소켓이 닫혔다고 통지해도 클라이언트 측에서는 일정시간 대기하는데, 혹시나 패킷이 나중에 도착할 수 있기 때문입니다.