방프리

20.02.17 TCP/IP 연습문제 Chapter 03 본문

Server&Network/TCP&IP

20.02.17 TCP/IP 연습문제 Chapter 03

방프리 2020. 2. 17. 08:25

1. IP주소 체계인 IPv4와 IPv6의 차이점은 무엇인가? 그리고 IPv6의 등장배경은 어떻게 되는가?

  • IP주소의 표현에 사용되는 바이트 크기가 다르다. 2010년을 전후로 IP주소가 모두 고갈될 것을 염려하여 만들어진 표준인데 아직까지 사용 중이다.

 

2. 회사의 로컬 네트워크에 연결되어 있는 개인 컴퓨터에 데이터가 전송되는 과정을, IPv4의 네트워크 ID와 호스트 ID, 그리고 라우터의 관계를 기준으로 설명하여라.

  • 처음 4바이트 IP주소 중에서 네트워크 주소만을 참조해서 회사 네트워크에 전송 후  호스트 주소를 참조하여 개인 컴퓨터에 데이터가 전송이 된다. 여기서 라우터는 네트워크 주소를 통해서 데이터를 받은 후 호스트 주소를 가지고 개인 컴퓨터에 데이터를 전송하는 역할을 한다.

 

3. 소켓의 주소는 IP와 PORT번호 두 가지로 구성된다. 그렇다면 IP가 필요한 이유는 무엇이고, PORT번호가 필요한 이유는 또 무엇인가? 다시 말해서, IP를 통해서 구분되는 대상은 무엇이고, PORT번호를 통해서 구분되는 대상은 또 무엇인가?

  • IP는 소켓을 통해서 데이터가 이동할 때 어느 목적지로 이동할 것인지 알려주는 주소와 같은 역할을 한다. PORT는 최종 목적지인 컴퓨터에서 실행되는 프로그램에 접근하는 역할을 하는데 필요한 데이터가 어느 프로그램에 쓰일지는 IP주소로는 알 수 없기 때문에 PORT번호를 통해 어느 프로그램에 데이터를 전송해야하는지 알 수 있다. 즉, IP는 개인 컴퓨터의 주소, PORT는 접근하고자 하는 응용 프로그램의 ID라 할 수 있다.

 

4. IP주소의 클래스를 결정하는 방법을 설명하고, 이를 근거로 다음 IP주소들이 속하는 클래스를 판단해보자.

  • a : 클래스 C, b : 클래스 A, c : 클래스 B

 

5. 컴퓨터는 라우터 또는 스위치라 불리는 물리적인 장치를 통해서 인터넷과 연결된다. 그렇다면 라우터 또는 스위치의 역할이 무엇인지 설명해보자.

  • 네트워크를 구성하려면 외부로부터 수신된 데이터를 호스트에 전달하고, 호스트가 전달하는 데이터를 외부로 송신해주는 물리적 장치가 필요하다. 이때 이 역할을 해주는 것이 라우터 또는 스위치이다.

 

6. '잘 알려진 PORT(Well-known PORT)'는 무엇이며, 그 값의 범위는 어떻게 되는가? 그리고 잘 알려진 PORT중에서 대표적인 HTTP와 FTP의 PORT번호가 어떻게 되는지 조사해보자.

  • Well-know PORT란 이미 특정 프로그램에 할당하기로 예약된 PORT로 사용할 수 없는 PORT이다. 0~1023번까지 할당되어 있으며 보편적으로 많이 사용하는 HTTP는 80번, FTP는 20번에 할당되어 있다.

 

7. 소켓에 주소를 할당하는 bind 함수의 프로토타입은 다음과 같다.

그런데 호출은 다음의 형태로 이뤄진다.

여기서 serv_addr은 구조체 sockaddr_in의 변수이다. 그렇다면 bind 함수의 프로토타입과 달리 구조체 sockaddr_in의 변소를 사용하는 이유는 무엇인지 간단히 설명해보자.

  • sockaddr의 구조체에서 IP주소와 PORT 번호가 포함되어야 하는 sa_data의 형태가 주소 정보를 담기에는 매우 불편한 상태로 되어있다. 때문에 간단히 데이터를 정할 수 있는 sockaddr_in의 구조체변수를 통해 설정을 하는 것이다.

 

8. 빅 엔디안과 리틀 엔디안에 대해서 설명하고, 네트워크 바이트 순서가 무엇인지, 그리고 이것과 필요한 이유는 또 무엇인지 설명해보자.

  • 빅 엔디안은 상위 바이트의 값을 작은 번지수에 저장하는 방식이고, 리틀 엔디안은 상위 바이트의 값을 큰 번지수에 저장하는 방식이다. 네트워크 바이트 순서는 빅 엔디안이며, 이것은 서로 다른 CPU에서 데이터를 전송하고 수신할 때 똑같은 데이터 형태로 받기 위해서이다.

 

9. 빅 엔디안을 사용하는 컴퓨터에서 4바이트 정수 12를 리틀 엔디안을 사용하는 컴퓨터에게 전송하려 한다. 이때 데이터의 전송과정에서 발생하는 엔디안의 변환과정을 설명해보자.

  •  

 

 

10. '루프백 주소(loopback address)'는 어떻게 표현되며, 의미하는 바는 무엇인가? 그리고 루프백 주소를 대상으로 데이터를 전송하면 어떠한 일이 벌어지는가?

  • 루프백 주소란 컴퓨터 자신의 IP주소를 의미하며, 127.0.0.1 로 표현된다. 루프백 주소를 대상으로 데이터를 전송할 시 자기 자신의 컴퓨터에 데이터가 전송된다.

 

Comments