Q. 네트워크란?
노드와 링크가 서로 연결되어 있거나 연결되어 있지 않은 집합체를 의미한다.
물리적 전송 매체를 사용하여 서로 연결된 장치 세트
Q. TCP/IP 4계층이란? 각각의 계층에 대해 간단하게 설명해보시오.
1. 링크 계층
: 실질적으로 데이터를 전달하며 장치 간에 신호를 주고 받는 규칙을 정하는 계층
2. 인터넷 계층
: 장치로부터 받은 네트워크 패킷을 IP 주소로 지정된 목적지로 전송하기 위해 사용되는 계층
3. 전송 계층
: 송신자와 수신자를 연결하는 통신 서비스를 제공. 대표적으로 TCP, UDP가 있다.
4. 어플리케이션 계층
: FTP, HTTP, SSH, SMTP, DNS 등 응용 프로그램이 사용되는 프로토콜 계층이며 웹 서비스, 이메일 등 서비스를 실질적으로 제공하는 층
으로 이루어져 있다.
Q. TCP와 UDP 방식의 차이점
TCP는 패킷 사이의 순서를 보장하고 연결지향 프로토콜을 사용하며 신뢰성이 높고 수신 여부를 확인하며 '가상회선 패킷 교환 방식'을 사용한다.
UDP는 신뢰성이 낮고 순서를 보장하지 않지만 속도가 빠르며 수신 여부를 확인하지 않고 '데이터그램 패킷 교환 방식'을 사용한다.
Q. 3-Handshaking vs 4-Handshaking
* 3-Handshaking
1) SYN : 클라이언트가 서버에 ISN을 담아 SYN을 보낸다.
2) SYN/ACK: 서버는 클라이언트의 SYN을 수신하고 서버의 ISN을 보내며 승인번호로 클라이언트의 ISN + 1을 보낸다.
3) ACK: 클라이언트는 서버의 ISN + 1한 값인 승인번호를 담아 ACK를 서버에 보낸다.
=> 이 과정 때문에 TCP는 신뢰성이 있는 계층이라고 한다.
* 4-Handshaking; TCP가 연결을 해제할 때 발생
1) 클라이언트가 연결을 닫으려고 할 때 FIN으로 설정된 세그먼트를 보낸다. 클라이언트는 FIN_WAIT_1 상태로 들어가고 서버의 응답을 기다린다.
2) 서버는 클라이언트로 ACK라는 승인 세그먼트를 보낸다. 그리고 CLOSE_WAIT 상태에 들어간다. 클라이언트가 세그먼트를 받으면 FIN_WAIT_2 상태에 들어간다.
3) 서버는 ACK를 보내고 일정 시간 이후에 클라이언트에 FIN이라는 세그먼트를 보낸다.
4) 클라이언트는 TIME_WAIT 상태가 되고 다시 서버로 ACK를 보내서 서버는 CLOSED 상태가 된다. 이후 클라이언트는 어느 정도의 시간을 대기한 후 연결이 닫히고 클라이언트와 서버의 모든 자원의 연결이 해제된다.