728x90
웹 통신의 큰 흐름: https://www.google.com/ 을 접속할 때 일어나는 일
- 사용자가 웹 브라우저에서 www.google.com을 주소창에 입력하면
- 웹 브라우저에서는 www.google.com 도메인에 대한 실제 IP 주소를 DNS에 조회
- 실제 IP 주소를 이용해서 서버의 80 포트를 통해 서비스를 제공하는 웹 서버에 해당 도메인에 대한 웹 컨텐츠를 요청
- 웹 서버는 웹 브라우저를 위한 별도의 포트에 소켓을 개설
- 4번의 소켓은 웹 브라우저와 연결
- 웹 서버는 요청 받은 컨텐츠를 웹 브라우저로 보냄
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