그냥 멍하니 앉아 있기

네트워크 개론(3판) 제6장 연습문제/기출문제 풀이 본문

네트워크 개론

네트워크 개론(3판) 제6장 연습문제/기출문제 풀이

노안돼지 2022. 3. 19. 16:37

원본출처: https://majeulsa.tistory.com/26

제6장 연습문제 풀이입니다.

1. 여러 포트를 이용하여 통신할 때 상위 계층에서는 TCP 포트 2번을 사용하여 하위 계층인 TCP와 통신하려 하고, 하위 계층인 TCP는 통신 포트 4번을 사용하여 상위 계층과 통신하려 한다면 상위 계층과 하위 계층 간에 통신이 이루어지는가?
포트번호가 다르므로 상위 계층과 하위 계층 간 통신이 되지 않는다.
상위 계층 프로토콜과 하위 계층 프로토콜이 같은 포트를 사용해야만 서로 통신할 수 있다.
 
2. 포트 번호가 80번이 아닌 웹 페이지에 접속하려면 웹 브라우저의 주소를 입력할 때 어떤 방법을 사용해야 하는가?
웹 주소를 입력할 때 포트 번호를 입력하면 된다.
예를 들어 'domain.com:포트번호'처럼 입력하면 된다.
예) http://www.univ.com:8080  (8080번 포트 사용 시)
 
3. 통신할 때 여러 웹 사이트에서 동시 파일을 다운로드할 수 있는 이유는 무엇인가?
TCP 프로토콜이 포트를 여러 개 생성하며, 각각의 포트가 상위 계층의 프로그램과 각각 따로 통신하기 때문에 동시에 파일을 다운로드가 가능하다.
 
4. 잘 알려진 포트 번호에 대해 설명하시오.
인터넷 서비스에는 미리 정해놓은 포트 번호를 '잘 알려진 포트 번호'라고 한다.
0 ~ 1023번이 미리 정의되어 할당되어 있다.
0 ~ 1023 번은 일반적으로 서버 측 애플리케이션에서 사용한다.
1024번은 예약되어 있지만 잘 사용되지 않고, 1025번 이상은 랜덤 포트로 클라이언트 측의 송신 포트로 사용한다.

포트 번호 애플리케이션 서비스
21 FTP
22 SSH
23 TELNET
25 SMTP
53 DNS
80 HTTP
110 POP3
443 HTTPS

5. TCP를 이용하여 두 장치 간에 전달되는 데이터의 단위는 무엇인가?
세그먼트
 
6. 전송 계층의 가장 대표적인 프로토콜은 무엇인가?
TCP, UDP
 
7. TCP가 상위 계층으로 데이터를 전송하거나 상위 계층에서 TCP로 데이터를 전송할 때 상호 간에 사용하는 데이터의 이동 통로는 무엇인가?
포트
 
8. HTTPS 애플리케이션에서 사용하는 잘 알려진 포트 번호는 무엇인가?
443
 
9. SYN와 ACK를 사용하여 3-way 핸드셰이킹 과정에 대해 설명하시오.
 ① 네트워크 통신을 하려면 수신 측 컴퓨터의 허락을 받아야 하므로 먼저 송신 측 컴퓨터는 수신 측 컴퓨터에 연결 확립 허가를 받기 위한 SYN 요청을 보낸다.
 ② 수신 측 컴퓨터는 송신 측 컴퓨터가 보낸 요청을 받은 후 허가한다는 응답을 회신하기 위해 연결 확립 응답인 ACK를 보낸다. 동시에 수신 측 컴퓨터는 송신 측 컴퓨터로부터 데이터 전송 허가를 받기 위해 연결 확립 요청인  SYN를 보낸다. 이때 연결을 확립하기 위해 코드 비트의 SYN과 ACK가 1로 활성화 된다.
 ③ 수신 측 컴퓨터의 요청을 받은 송신 측 컴퓨터는 수신 측 컴퓨터에 허가한다는 응답으로 연결 확립 응답인 ACK를 보낸다.
 
10. TCP 헤더의 필드에 대해 설명하시오.
* 송신지 포트 번호(16비트): 세그먼트를 전송하는 송신지 호스트에 있는 응용프로그램의 포트 번호

* 수신지 포트 번호(16비트): 수신지 호스트에서 수행하는 프로세스가 사용하는 포트 번호, 클라이언트가 수신지 호스트를 요청하는 서버라면 대부분은 잘 알려진 포트 번호

* 순서 번호(32비트): 세그먼트에 포함된 데이터의 첫 번째 바이트에 부여된 32비트의 부호 없는 번호이다.
2^23-1을 초과하면 0으로 되돌아온다.
TCP는 신뢰성 있는 연결을 보장하기 위해 전송하는 바이트마다 번호를 부여한다.
순서 번호는 TCP 세그먼트의 첫번째 바이트가 순서 번호에 해당하는 바이트라는 것을 알려준다.

* 확인 응답 번호(32비트): 세그먼트를 수신하는 노드가 상대편의 노드에서 수신하려는 바이트의 번호이다.

이 번호는 성공적으로 수신한 마지막 바이트의 순서 번호 +1이다.

* 헤더 길이(4비트): TCP 헤더 길이를 4바이트 워드 값으로 나타내며, 헤더 길이는 20~60바이트가 될 수 있다.

따라서 이 필드의 값은 5*4에서 15*4 사이다.

* 예약(6비트): 나중에 사용하기 위해 예약된 필드이다.  


* 코드 비트(6비트): TCP 헤더의 107번째부터 112번째 비트이다.

코드 비트는 비트별로 역할이 정해져 있으며, 초기 값이 0이고 비트가 활성화되면 1이 된다.
데이터를 전송할 때 연결을 확립하려면 코드 비트 중 연결 요청을 하는 SYN과 확인 응답하는 ACK가 필요하다.


제6장 기출문제 풀이입니다.

1. 다음 중 전송 계층의 프로토콜로 올바른 것은?
 ② TCP
 
2. HTTPS 애플리케이션에서 사용하는 잘 알려진 포트 번호로 올바른 것은?
 ④ 443
 
3. 다음에서 설명하고 있는 TCP 헤더 필드로 올바른 것은?
이 필드는 세그먼트를 수신하는 노드가 상대편 노드에서 수신하려는 바이트의 번호이다.
 ③ 확인 응답 번호
 
4. 긴급하게 처리할 데이터가 들어 있는 코드 비트로 올바른 것은?
 ① URG
 
5. UDP에 대한 설명으로 가장 거리가 먼 것은?
 ① RFC 768 문서에 정의된 연결 지향 프로토콜이다.
 
6. TCP에 대한 설명으로 잘못된 것은? 
 ① 비연결 지향형 프로토콜이다.
 
7. 전송 계층 데이터 단위에 대한 설명으로 잘못된 것은?
 ① 전송 계층의 데이터 헤더는 포트 주소나 소켓 주소를 포함하지 않는다.