CODE CAVE

[데이터통신과 컴퓨터 네트워킹] 9장 연습문제 풀이 본문

ETC./TIP

[데이터통신과 컴퓨터 네트워킹] 9장 연습문제 풀이

코드케이브 2016. 6. 10. 03:32

[데이터통신과 컴퓨터 네트워킹 기초 이론과 최신 응용]



# TCP 프로토콜에서는 신뢰성 있는 데이터 전송을 위한 여러 방법을 가지고 있다. 신뢰성 있는 전송을 위한 두 가지 방법을 설명하라.

오류제어 기법: 전송된 세그먼트가 손실되었거나 훼손딘 경우, 순서가 어긋나는 경우, 또는 중복되는 경우에 이에 대한 처리 기능을 수행하는 것. TCP에서는 전송 도중 세그먼트에 문제가 발생하면, 동일한 세그먼트를 다시 전송하는 방법을 사용한다.

혼잡제어 기법: 네트워크로 유입되는 사용자 ㄷ트래픽의 양이 네트워크 용량을 초과하지 않도록 유지시키는 매커니즘과 기술을 말한다.


# 스트링 서비스 기법에서 push mechanism에 대해 간단히 기술하라.

만일 응용프로그램이 대량의 데이터에 대한 블럭을 전송하고자 할 때, TCP는 각각의 블럭을 보다 작은 조각으로 나누어 전송한다. 경우에 따라, TCP는 비록 버퍼가 채워지지 않은 상태라 하더라도 강제적으로 전송할 수 있도록 하는 기법을 푸시(push) 기법이라 한다. 


# P-ACK 재전송 기법이란 무엇인가?

신뢰성 있는 전송을 위한 방법으로는 p-ACK 재전송기법(positive ACK with retransimission)이 있다.


# TCP의 연결 설정 과정에 대하여 흐름도를 이용하여 설명하라

TCP의 연결 설정과정은 3방향 교신기법(three-way handshaking)을 사용한다. 

전송측과 수신측 모두가 데이터 전송을 준비하고, 일련번호를 초기화한다. 

교신과정의 첫 번째 세그먼트는 “코드영역(code field)”에 SYN(synchronization) 비트를 설정한다. 

두 번째 메시지는 SYN 비트에 대한 ACK로써, SYN 비트와 ACK 비트를 모두 설정한다. 

마지막 교신 메시지는 단지 ACK 역할만을 담당한다. 

아래 그림에서, A라는 교신과정을 초기화한 장치는 “3방향 교신”과정 내부의 SYN 세그먼트의 일련번호 영역의 일련번호인 x를 전송한다. 

다음으로 SYN을 받은 B라는 장치는 그 일련번호를 인식하고, 일련번호 영역에서 일련번호를 초기화 한 후, x+1의 일련번호 갖는 ACK을 전송한다. 

ACK 번호인 y를 통해 B에서의 모든 데이터가 전송완료 되었음을 나타낸다. 

연결이 설정되면 데이터를 양방향으로 동시에 전송할 수 있게 된다.



# TCP 세그먼트의 형식과 각 영역의 의미를 기술하라.


- 소스포트(source port) 주소와 목적지포트(destination port) 주소 영역 : TCP 연결에서 응용프로그램을 식별하도록 하는 TCP 포트 주소가 들어간다.

- 일련번호(sequence number) 영역: 세그먼트에서 데이터 공급자의 바이트 스트림 안에서의 세그먼트의 위치를 식별한다. 

- ACK(Acknowledgement number) 영역: 소스가 그 다음에 수신하게 될 세그먼트의 번호(바이트 수)를 식별한다.

- HLEN 영역: 세그먼트 헤더의 길이를 나타내는 정수값이다. 

- 옵션(options) 영역: TCP의 확장된 다양한 기능과 관련된 영역이다. 

- 예약(reserved) 영역: 6비트 영역으로 차후에 사용하기 위해 남겨둔 영역이다.

- 코드비트(code bits) 영역:  세그먼트의 목적과 내용들을 결정한다. 

- 윈도우(window)영역 : 16비트로 구성되는데, 버퍼 크기로써 보낼 수 있는 데이터의 크기를 알려준다. 윈도우 메커니즘에서 사용된다.

- 체크섬(checksum) 영역: 16비트로, 세그먼트 전체에 대한 에러탐지(detection)를 수행한다.  

- 긴급포인터(Urgent Pointer)영역: 16비트로, 세그먼트에 긴급데이터가 있는지 여부를 알려주는 긴급 플랙과 관련된다. 이 영역의 값은 TCP 긴급 데이터의 마지막 바이트를 알려주는 포인터 값이다. 즉 세그먼트 일련번호와 이 영역의 값을 더하면 긴급 데이터의 마지막 바이트가 된다.






도움이 되셨다면 아래 하트를 뿅..

AD
For 개발자