컴퓨터 네트워크

TCP/IP

승무_ 2023. 7. 9. 16:12

OSI 7계층과 TCP/IP 4계층을 비교하여 설명해 주세요

OSI 7계층은 네트워크 통신을 표준화한 모델로, 통신 시스템을 7단계로 나누어 설명한 것입니다. 하지만 OSI 모델이 실무적으로 이용하기에 복잡한 탓에 실제 인터넷에서는 이를 단순화한 TCP/IP 4계층이 사용되고 있습니다.


TCP vs UDP를 비교해서 설명해 주세요 ⭐

TCP는 신뢰성 있는 데이터 전송을 보장하는 연결형 프로토콜입니다. 데이터 전송 전에 3-way handshake라는 과정을 거쳐 클라이언트와 서버 간의 연결을 설정하고, 데이터 전송 후에는 ACK 패킷을 보내 에러 검사 및 데이터 수신 여부를 확인합니다. 이러한 방식으로 데이터를 전송함으로써, 데이터 손실이나 중복 전송을 방지하고, 데이터의 정확성과 일관성을 보장합니다. 하지만, 이러한 신뢰성 있는 데이터 전송을 위해 오버헤드가 발생하며, 전송 속도가 느리다는 단점이 있습니다.

반면, UDP는 비연결형 프로토콜로, 데이터 전송 전에 별도의 연결 설정 과정을 거치지 않습니다. 데이터를 전송할 때는 각 패킷에 대한 에러 검사만을 수행하며, 데이터 전송 후에는 수신 여부를 확인하지 않습니다. 이러한 방식으로, 데이터 전송 속도가 빠르고 오버헤드가 적습니다. 하지만, 데이터 손실이나 중복 전송 등의 문제가 발생할 수 있으며, 데이터의 정확성과 일관성을 보장하지 않습니다.

따라서, TCP는 파일 전송, 이메일 등 데이터의 정확성이 중요한 통신에 주로 사용되고, UDP는 동영상, 음성 등 실시간 스트리밍 서비스에 주로 사용됩니다.

 

  • 왜 HTTP는 TCP를 사용하나요?
더보기

클라이언트와 웹 서버 사이에 데이터를 안정적으로 주고 받기 위해 신뢰성을 보장하는 TCP를 사용합니다.

  • 그렇다면, 왜 HTTP/3 에서는 UDP(QUIC) 를 사용하나요? 위에서 언급한 UDP의 문제가 해결되었나요?
더보기

웹 애플리케이션 특성상 작은 데이터가 요청, 응답되어지는 경우가 많은데 이 때 마다 3-way handshake작업을 하는 것은 오버헤드가 크므로 UDP위에 오류 감지, 혼잡제어 기능을 추가한 QUIC를 사용합니다.

  • Checksum이 무엇인가요?
더보기

TCP header에 존재하는 영역이며 에러체크를 수행한다.

  • 그렇다면, Checksum을 통해 오류를 정정할 수 있나요?
더보기

탐지만 가능하고 정정은 불가능해 오류 발생시 재전송이 필요하다.

  • TCP가 신뢰성을 보장하는 방법에 대해 설명해 주세요.
더보기

데이터에 sequence number를 부여해 패킷의 순서를 보장하고, ACK응답을 통해 데이터의 수신 여부를 확인합니다.

  • TCP의 혼잡 제어 처리 방법에 대해 설명해 주세요.
더보기

혼잡이란 보내는 데이터의 양이 수신 측에서 처리할 수 있는 양을 초과하게 되면서 송신 측에서는 수신 측에서 처리하지 못한 데이터를 손실 데이터로 간주하고 계속 재전송하게 되어 네트워크가 더욱더 혼잡하게 되는 상황을 의미한다. 이러한 혼잡 상태를 제어하는 것을 혼잡 제어라고 한다.

혼잡 제어 방식으로 Slow Start, Additive Increase가 있다.

Slow Start는 일정 threshold까지 2^n 형태로 계속 보내는 양을 올리는 방법을 뜻하고 Additive Increase는 특정 threshold가 넘었을 때 부터 1씩 보내는 양을 올리는 방법을 뜻한다.

 


3-way handshake는 무엇이고 각 과정은 어떻게 되나요?

3-way handshake는 TCP 연결 설정 과정으로, 클라이언트와 서버 간의 연결을 설정하기 위해 사용됩니다. 이 과정은 다음과 같이 진행됩니다.

클라이언트는 SYN 패킷을 서버에 보냅니다. 이 패킷은 클라이언트가 연결을 시작하겠다는 것을 나타냅니다.
서버는 SYN 패킷을 받고, 수신할 준비가 되었다는 의미로 SYN+ACK 패킷을 클라이언트에 보냅니다.
클라이언트는 SYN+ACK 패킷을 받고, 수신할 준비가 되었다는 의미로 ACK 패킷을 서버에 보냅니다. 이로써 연결 설정 과정이 완료됩니다.

 

  • IPv6는 IPv4의 주소 고갈 문제를 해결하기 위해 만들어졌지만, 아직도 수많은 기기가 IPv4를 사용하고 있습니다. 고갈 문제를 어떻게 해결할 수 있을까요?
더보기

사설망을 사용해 고갈 문제를 해결하고 있습니다. 예를 들어 공유기를 사용해 네트워크에 접속하는 경우 공유기까지만 공인 IP를 사용하고 내부 네트워크에서는 사설 IP를 사용해 IP 고갈 문제를 막습니다.

  • IPv4와 IPv6의 차이에 대해 설명해 주세요.
더보기

IPv6는 IPv4의 주소 부족 문제를 해결하기 위해 나온것으로 128bit를 사용합니다.

  • IP가 송신자와 수신자를 정확하게 전송되는 것을 보장해 주나요?
더보기

IP 자체만으로는 신뢰성을 보장할 수 없어 상위 프로토콜인 TCP를 같이 사용해야 합니다.

  • TTL(Hop Limit)이란 무엇인가요?
더보기

IP 패킷이 네트워크를 무한정 떠돌지 않기 하기위해 거칠 수 있는 최대 라우터의 수를 정한 것입니다.

  • IP 주소와 MAC 주소의 차이에 대해 설명해 주세요.
더보기

둘 다 컴퓨터를 식별하기 위해 사용한다는 공통점이 있지만, IP같은 경우 네트워크 계층에서 사용되며 주소가 변경될 수 있고 MAC같은 경우 데이터 링크 계층에서 사용되며 주소 변경이 불가능하다는 특징이 있습니다.

  • Transport Layer와, Network Layer의 차이에 대해 설명해 주세요.
더보기

Network Layer는 데이터를 목적지까지 전달하는 역할을 수행하며, 주소 지정과 라우팅 기능을 제공합니다. 반면에 Transport Layer는 종단 간의 데이터 신뢰성을 담당하며, 데이터의 분할과 재조립, 오류 검출 및 복구, 흐름 제어 등의 기능을 제공합니다.

  • 각 Layer는 패킷을 어떻게 명칭하나요? 예를 들어, Transport Layer의 경우 Segment라 부릅니다.
더보기

Application - Message

Transport - Segment

Network - Datagram

Data Link - Frame

  • ARP에 대해 설명해 주세요.
더보기

ARP는 네트워크 상에서 IP 주소를 MAC 주소로 대응시키기 위해 사용됩니다. 처음 통신을 시작할 때는 상대방의 Mac Address를 모르는데 그때 상대방의 Mac Address를 알아내기 위하여 사용하는 프로토콜입니다. 

  • ACK, SYN 같은 정보는 어떻게 전달하는 것 일까요?
더보기

TCP header 내에 Control field를 통해 전달한다.

  • 2-Way Handshaking 를 하지않는 이유에 대해 설명해 주세요.
더보기

마지막에 클라이언트가 ACK을 보내야 서버도 클라이언트가 수신 가능한 상태임을 알 수 있기 때문에 3-Way handshake를 해야한다.

  • SYN Flooding 에 대해 설명해 주세요.
더보기

네트워크를 공격하는 방법 중 하나로 syn 패킷을 계속 보내어 네트워크 자원을 고갈시키는 것이다.

  • 패킷이 4-way handshake 목적인지 어떻게 파악할 수 있을까요?
더보기

tcp header의 control field FIN flag를 통해 파악할 수 있다.

  • 빨리 끊어야 할 경우엔, (즉, 4-way Handshake를 할 여유가 없다면) 어떻게 종료할 수 있을까요?
더보기

RST flag를 통해 ACK을 보내거나 기다리는 과정없이 즉시 종료할 수 있다. 

  • 왜 종료 후에 바로 끝나지 않고, TIME_WAIT 상태로 대기하는 것 일까요?
더보기

서버는 ip와 port로만 클라이언트를 구분하기 때문에 이전 연결에서 보낸 요청을 새 연결상태에서 응답받아 문제가 생기는 상황이 발생할 수 있어 TIME_WAIT기간 동안 port를 반납안해 이러한 문제를 방지한다.

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

Authorization  (0) 2023.07.12
HTTP  (0) 2023.07.11
쿠키와 세션의 차이에 대해 설명해 주세요.  (0) 2023.06.20
OSI 7계층  (0) 2023.04.06
TCP  (0) 2023.04.06