IT 시사 및 CS 지식/IT 시사 및 CS 지식

[CS스터디]220621 네트워크 - 1

GAEBAL 2022. 6. 22. 01:25
728x90

웹 통신의 큰 흐름: https://www.google.com/ 을 접속할 때 일어나는 일

  1. 사용자가 웹 브라우저에서 www.google.com을 주소창에 입력하면
  2. 웹 브라우저에서는 www.google.com 도메인에 대한 실제 IP 주소를 DNS에 조회
  3. 실제 IP 주소를 이용해서 서버의 80 포트를 통해 서비스를 제공하는 웹 서버에 해당 도메인에 대한 웹 컨텐츠를 요청
  4. 웹 서버는 웹 브라우저를 위한 별도의 포트에 소켓을 개설
  5. 4번의 소켓은 웹 브라우저와 연결
  6. 웹 서버는 요청 받은 컨텐츠를 웹 브라우저로 보냄

 

 

 

TCP와 UDP의 차이점에 대해서 설명해보세요.

TCP(Transmission Control Protocol)

  • 전송을 제어하는 프로토콜
  • 인터넷상에서 데이터를 메세지의 형태로 보내기 위해 IP와 함께 사용하는 프로토콜

특징

  • 연결형 서비스로 가상 회선 방식을 제공
  • 3-way handshaking과정을 통해 연결을 설정하고 4-way handshaking을 통해 해제함
  • 흐름 제어, 혼잡 제어, 오류 제어 -> 신뢰성 보장
  • 높은 신뢰성을 보장
  • UDP보다 속도가 느림
  • 전이중(Full-Duplex), 점대점(Point to Point) 방식

 

UDP(User Datagram Protocol)

  • 사용자 데이터그램 프로토콜
  • 데이터를 데이터그램 단위로 처리하는 프로토콜

특징

  • 비연결형 서비스로 데이터그램 방식을 제공함
  • 정보를 주고 받을 때 정보를 보내거나 받는다는 신호절차를 거치지 않음
  • UDP헤더의 CheckSum 필드를 통해 최소한의 오류만 검출함
  • 신뢰성이 낮음
  • TCP보다 속도가 빠르다

 

위의 특징들 때문에 TCP는 연결형 서비스(HTTP 통신, 이메일, 파일 전송 등)에 사용되고, UDP는 비연결성, 단방향 서비스(스트리밍 등)에 사용된다!

 

 

 

TCP 3, 4 way handshake에 대해서 설명해보세요.

TCP 통신 과정에서 3-way handshaking과정을 통해 연결을 설정하고 4-way handshaking을 통해 해제함

 

3-way handshaking

  • 연결을 설정(Connection Establish)하는 과정
  • 양쪽 모두 데이터를 전송할 준비가 되었다는 것을 보장하고, 실제로 데이터 전달이 시작하기 전에 한 쪽이 다른 쪽이 준비되었다는 것을 알 수 있도록 함
  • 데이터를 전송하기 전에 상대방 컴퓨터와 사전에 세션을 수립하는 과정을 의미함
  • 클라이언트 쪽에서 연결을 요청한다고 SYN을 보냄(1). 서버 쪽이 받았으면 받았다고 SYN + ACK를 보냄(2). 이걸 클라이언트가 받았으면 받았다고 ACK를 보냄.(3)

 

4-way handshaking

  • 연결을 해제(Connection Termination)하는 과정
  • FIN 플래그를 사용
  • 클라이언트 쪽에서 끝났다고 FIN을 보냄(1). 받은 서버 쪽에서 FIN을 받았다고 ACK를 보낸(2) 후, 이제 끝내겠다고 FIN을 보냄(3). 클라이언트 쪽에서 FIN을 받았으면 받았다고 ACK를 보냄(4)

 

728x90