C/TCPIP 소켓 프로그래밍(윤성우 저) 23

TCP/IP 소켓 프로그래밍 10장 내용 확인문제

1. 다음 중 프로세스에 대한 설명으로 옳은 것은? >a. 프로세스는 운영체제의 관점에서 프로그램의 실행 단위가 된다. b. 프로세스도 생성방식에 따라서 부모와 자식의 관계를 갖는다 *틀린 설명c. 프로세스는 다른 프로세스를 포함할 수 있다. 즉, 하나의 프로세스는 자신의 메모리 영역에 또 다른 프로세스를 포함할 수 있다. ->프로세스는 독립적인 존재이다. 다른 프로세스를 포함할 수 없다. d. 자식 프로세스는 또 다른 자식 프로세스를 생성할 수 있고, 이렇게 생성된 자식 프로세스 역시 또 다른 자식 프로세스를 생성할 수 있지만, 이들은 모두 하나의 프로세스와만 부모자식의 관계를 형성한다.->하나의 프로세스와만 부모자식의 관계를 형성하는 것은 맞지만, 자식프로세스가 다른 자식 프로세스를 생성할 수는 없다..

TCP/IP 소켓 프로그래밍 1~5장 함수 복습

[리눅스 소켓 생성 함수]#include int socket(int domain, int type, int protocol);->성공시 파일 디스크립터, 실패 시 -1 반환 *domain:소켓이 사용할 프로토콜 체계(Protocol Family) 정보 전달*type:소켓의 데이터 전송방식에 대한 정보 전달*protocol:두 컴퓨터간 통신에 사용되는 프로토콜 정보 전달 [리눅스 소켓에 주소정보 할당하는 함수]#include int bind(int sockfd, struct sockaddr *myaddr, socklen_t addrlen);->성공시 0, 실패시 -1 반환 *sockfd:주소정보를(IP와 PORT를) 할당할 소켓의 파일 디스크립터*myaddr:할당하고자 하는 주소정보를 지니는 구조체 변수의..

TCP/IP 소켓 프로그래밍 9장 내용 확인문제

1. 다음 중 Time-wait 상태에 대해서 맞게 설명한 것을 모두 고르면? >b. 연결종료의 Four-way handshaking 과정에서 먼저 FIN 메세지를 전달한 소켓이 Time-wait 상태가 된다. *틀린 내용 a.Time-wait 상태는 서버 프로그램에서 생성한 소켓에서만 발생한다. ->소켓의 Time-wait 상태는 클라이언트냐 서버냐에 상관없이 존재한다. 먼저 연결의 종료를 요청하면 해당 소켓은 반드시 Time-wait 상태를 거친다. 하지만 클라이언트의 Time-wait 상태는 신경을 쓰지 않아도 된다. 왜냐하면 클라이언트 소켓의 PORT번호는 임의로 할당되기 때문이다. c.연결요청 과정에서 전송하는 SYN 메세지의 전송순서에 따라서 Time-wait 상태는 연결종료와 상관없이 일어날..

TCP/IP 소켓 프로그래밍 8장 내용 확인문제

1. 다음 중 DNS(Domain Name System)에 대한 설명으로 맞는 것을 모두 고르시오. >a. DNS가 존재하기 때문에 IP를 대신해서 도메인 이름을 사용할 수 있다. c. 하나의 DNS 서버에 모든 도메인 정보가 다 등록되어 있지는 않다. 그러나 등록되지 않은 도메인의 IP주소도 얻어올 수 있 다. *틀린 설명 b. DNS 서버는 사실 라우터를 의미한다. 라우터가 도메인 이름정보를 참조하여 데이터의 진로를 결정하기 때문이다 ->DNS 서버는 도메인 이름을 IP주소로 변환하는 역할을 수행한다. d. DNS 서버는 운영체제에 따라서 구분이 된다. 즉, 윈도우 운영체제용 DNS서버와 리눅스용 DNS 서버는 구분이 된다. ->구분이 안된다 2. 아래의 대화를 읽고 동수가 제안한 해결책으로 문제가 ..

TCP/IP 소켓 프로그래밍 7장 내용 확인문제

1. TCP에서의 스트림 형성이 의미하는 바가 무엇인지 설명해보자. 그리고 UDP에서도 스트림이 형성되었다고 할 수 있는 요소가 있는지 없는지 말해보고, 그 이유에 대해서도 설명해보자 >TCP에서의 스트림 형성은 두 소켓이 서로 연결되어서 데이터를 송수신할 수 있게 된 상태를 의미한다. 반면, UDP의 경우는 스트림 형성과정이 존재하지 않는다. 두 소켓이 서로 연결되어있는 상태에 놓이지 않기 때문이다. 2. 리눅스에서의 close 함수 또는 윈도우에서의 closesocket 함수 호출은 일방적인 종료로써 상황에 따라서 문제가 되기도 한다. 그렇다면 일반적인 종료가 의미하는 바는 무엇이며, 어떠한 상황에서 문제가 되는지 설명해 보자. >일반적인 종료는 소켓을 완전히 종료시켜서 데이터의 송수신이 모두 불가능..

TCP/IP 소켓 프로그래밍 6장 내용 확인문제

1. TCP보다 UDP가 빠른 이유는 무엇인가? 그리고 TCP는 데이터의 전송을 신뢰할 수 있지만 UDP는 신뢰할 수 없는 이유는 또 무엇인가? >UDP는 TCP와 달리 흐름제어를 하지 않기 때문에 TCP보다 빠르다. 이 흐름제어는 소켓의 연결과 종료, 그리고 데이터 송수신 전반에 걸쳐서 진행되기 때문에 TCP의 데이터 전송은 언제나 신뢰할 수 있다. 하지만, 이 흐름제어 때문에 속도는 UDP보다 느리다. 2. 다음 중 UDP의 특성인 아닌 것을 모두 고르면? >b. UDP 기반으로 데이터를 전송할 목적지가 두 군데라면, 총 두개의 소켓을 생성해야 한다 ->UDP 소켓이 하나 있다면 어디건 데이터를 전송할 수 있다. c. UDP 소켓은 TCP 소켓이 할당한 동일한 번호의 PORT에 재할당이 불가능하다. ..

TCP/IP 소켓 프로그래밍 5장 내용 확인문제

1. TCP 소켓의 연결설정 과정인 Three-way handshaking에 대해서 설명해 보자. 특히 총 3회의 데이터 송수신이 이뤄지는데, 각각의 데이터 송수신 과정에서 주고 받는 데이터에 포함된 내용이 무엇인지 설명해 보자. >호스트 A가 호스트 B에게 전달하는 메세지를 SYN이라고 한다. 이렇듯 호스트 A가 호스트 B에게 전송하는 데이터의 동기화를 위해서 처음 보내는 '동기화 메세지'를 가리켜 SYN이라고 한다. 이어서 호스트 B가 호스트 A에게 전달하는 메세지를 가리켜 SYN+ACK라고 한다. 이는 처음으로 보내는 동기화 메세지와 앞서 수신한 메세지에 대한 응답의 내용까지 포함되어 있기 때문이다. 그리고 마지막으로 호스트 A가 호스트 B에게 전달하는 메세지에는 동기화 정보가 포함되어 있기 때문에..

TCP/IP 소켓 프로그래밍 4장 내용 확인문제

1. TCP/IP 프로토콜 스택을 4개의 계층으로 구분해 보자. 그리고 TCP 소켓이 거치는 계층구조와 UDP 소켓이 거치는 계층구조의 차이점을 설명해보자. >TCP는 LINK 계층IP 계층TCP 계층Application 계층의 구조를 갖는다 UDP는 LINK계층IP 계층UDP 계층Application 계층의 구조를 갖는다 2. TCP/IP 프로토콜 스택 중에서 LINK 계층과 IP 계층이 담당하는 역할이 무엇인지 설명해보자. 그리고 이 둘의 관계도 함께 설명해보자. >LINK 계층은 LAN, WAN, MAN 같은 네트워크 표준과 관련된 프로토콜을 정의하는 영역으로, 물리적인 성격의 표준을 정의하고 있는 계층으로 정리할 수 있다. 반면 IP 계층은 인터넷을 통한 데이터 전송의 표준을 정의하고 있는 계층이..

TCP/IP 소켓 프로그래밍 3장 내용 확인문제

1. IP주소 체계인 IPv4와 IPv6의 차이점은 무엇인가? 그리고 IPv6의 등장배경은 어떻게 되는가? >IPv4는 4바이트 주소체계, IPv6는 16바이트 주소체계이다. IPv4 기반의 IP주소 고갈을 염려하여 IPv6가 등장하게 되었다. 2. 회사의 로컬 네트워크에 연결되어 있는 개인 컴퓨터에 데이터가 전송되는 과정을, IPv4의 네트워크 ID와 호스트 ID, 그리고 라우터의 관계를 기준으로 설명하여라. >데이터 전송과정의 첫번째는 속한 목적지가 속한 네트워크로의 데이터 전송이다. 이 때 사용되는 것이 IP 주소 중의 네트워크 ID라고 불리는 부분이다. 네트워크 ID란 네트워크를 구분할 수 있는 주소 정보로써 이를 통해서 해당 네트워크로 데이터가 전송된다. 그리고 이렇게 전송된 데이터는 네트워크를..

TCP/IP 소켓 프로그래밍 2장 내용 확인문제

1.프로토콜이란 무엇을 의미하는가? 그리고 데이터의 송수신에 있어서 프로토콜을 정의한다는 것은 어떠한 의미가 있는가? >프로토콜은 통신의 방법을 약속해 놓은 통신규약을 의미한다. 따라서 프로토콜을 정의한다는 것은 데이터 송수신에 필요한 약속을 정의한다는 의미이다. 2.연결지향형 소켓인 TCP 소켓의 특성 세가지를 나열하라 >a. 중간에 데이터가 소멸되지 않고 목적지로 전송된다. b. 전송 순서대로 상대 호스트로 데이터가 수신된다. c. 전송되는 데이터의 경계가 존재하지 않는다.(여러 차례 나누어서 데이터를 보내도 한번에 데이터를 수신할 수 있다.) *반면, UDP 소켓 같은 경우 여러 차례 나누어서 데이터를 보내면 여러 차례 나누어서 데이터를 수신해야 한다. (전송되는 데이터의 경계가 존재) 3. 다음 ..