티스토리 뷰

컴퓨터네트워크 7장


7.1 트랜스포트 프로토콜의 위치와 역할
다양한 응용프로토콜들에 공통적으로 포함되는 통신 규약을 별도로 정의한 프로토콜.

7.2 트랜스포트 서비스
IP 내의 프로세스 구분을 위해 포트번호를 사용.
오류검출,복구, 흐름제어, 헌잡제어기능이 트랜스포트프로토콜의 중요 기능.

7.3 TCP
7.3.1 TCP역할과 동작 원리
세그먼트로 나누고 이에 순서번호를 부여해 수신시 순서번호에 맞게 수신되는지 확인해 신뢰적인 데이터서비스 제공.
TCP의 오류탐지는 체크섬, 순서번호확인을 통해 이뤄짐.

7.3.2 TCP세그먼트 포맷
출발지포트번호,목적지포트번호
순서번호, 확인번호(다음세그먼트의 순서번호를 나타냄), 
수신윈도우크기(수신자가 받을 수 있는 데이터의 비트 수).
체크섬(계산을 통해 전달된 데이터가 훼손되어 부정확한 상태인지 확인 계산시엔 의사헤더포함 계산)

7.3.3 TCP 연결
통신통로= 소켓. 클라이언트의 포트는 연결시에 동적으로 부여되는 임시포트.
서버의 포트번호는 영구적이다. 클라이언트는 서버소켓주소로 지정되는 서버소켓사용.

서버소켓을 통해 연결접수하고, 이후 서버연결소켓(클,서 아이피 포트번호)을 만들어 통신한다.

7.3.4 TCP연결설정절차
클-서 싱크 세그먼트 전송 : 싱크비트가1로 설정된 세그먼트전송. 목적은, 송신자-수신자간의 순서번호동기화. 출발지,목적지포트번호포함. 데이터를 포함하지 않음.
서-클 싱크+애크 세그먼트 전송 : 싱크세그먼트를 수신한 서버는 연결요청을 수락하고, 신호를보내 요청에 응답한다. 순서번호초기화기능 구현. 수신윈도우크기에 값 지정.
클-서 애크 세그먼트 전송 : 싱+애 세그먼트 수신확인기능 수행.

3단계핸드쉐이킹 : 위와같은 연결설정절차

7.3.5 데이터 전송절차
3단계핸드쉐이킹이 완료되면 이는 클-서버 간 소켓생성,연결이 완료 되었음을 의미함. 양방향서비스 가능.
데이터 전송시 버퍼보다 커지는걸 방지하기위해 수신윈도우크기를 이용한다. 수신자는 자신의 버퍼상태를 송신자에게 수시로 통보해 양조절가능케 해야 함. =흐름제어
최대세그먼트크기(MSS)는 단편화방지를 위해 536~65563까지 확장가능. 전달데이터가 MSS보다 크면 MSS단위로 데이터를 나눈 후 수신윈도우를 고려해 하나씩 전달. 순서번호 필드에 세그먼트순서를 기록해 순서에맞게 도착하는지 알수있게 해야함. 

URG비트가1이면 긴급데이터전송요구

7.3.6 오류제어
오류제어는 송신세그먼트에 대한 수신확인, 재전송을 통해 이루어짐. 송신TCP로부터 데이터세그먼트를 수신한TCP는 체크섬 계산을 통해 훼손여부를 확인하고, 훼손되지 않았으면 애크 세그먼트를 통해 수신사실 통보. 만약, 훼손되었다면 폐기, 송신측에선 일정시간동안 애크세그먼트를 받지못하면 재전송함.
누적수신확인기법을 사용하면, 중간에 손실된 세그먼트를 다시 보낸후 계속 이어 보낼 수 있다.

7.3.7 흐름제어
데이터를 한번에 송신해 수신버퍼가 넘쳐 데이터손실이 발생하는 문제를 방지.
수신윈도우크기를 통보해줌으로서 해결.

7.3.8 효율적인 세그먼트 전송.
작은 크기의 세그먼트 여러개를 전송하면 제어정보가 많아져 효율저하. 이럴 땐, 여러개의 데이터를 하나의 데이터세그먼트로 합쳐 전송하는 것이 바람직.
Nagle알고리즘.
1 첫번째는 무조건 전송 후 수신윈도우크기 알아냄.
2 수신윈도우크기의 크기만큼 세그먼트를 구성할때까지 모았다가 전송.

수신측에서 작은크기의 세그먼트를 반복적으로 받을경우 발생하는 효율문제를 Clark기법과 수신확인지연기법으로 해결한다.
Clark기법 : 수신윈도우크기 반환시에 수신윈도우크기가 MSS크기의 세그먼트를 수용할 여유공간이 생길때까지 0으로 반환.
수신확인지연기법 : 버퍼에 충분한 공간이 생길때까지 전송보류. 보류가길어질수록 재전송으로 이어질 가능성이 커지는 문제있음.
피기백: 애크신호에 자신이 보낼 정보를 같이 보냄.

7.3.9 혼잡제어
혼잡현상 : 버퍼가 넘치거나 대기시간이 길어져 데이터가 몰리는 현상.
TCP는 혼잡제어를 위해 수신윈도우크기와 개념이 같은 혼잡윈도우크기를 유지한다.
혼잡윈도우 초기 크기 = 1MSS
TCP연결설정후 혼잡상황이 발생하지 않으면 애크세그먼트를 받을 때마다 2배씩 크기 증가. 초기값적게->2배씩크게.
이후 임계치에 다다르면 1MSS씩 증가.혼잡발생시 임계치는 혼잡윈도우크기의 1/2로 설정하고, 혼잡윈도우의 크기를 1MSS로 되돌린 후 다시 반복.
빠른재전송을 위한다면 임계치부터 다시 시작. 선형증가.

7.3.10 연결해제 서비스
4단계핸드쉐이킹
기동자-응답자 : FIN
응-기 : ACK
응-기 : FIN
기-응 : ACK

비정상정연결해제는 RST(리셋)세그먼트 교환을 통해 이루어질 수 있다.

7.4 UDP

7.4.1 UDP의 역할과 동작원리
-TCP와 마찬가지로 클라이언트-서버 데이터전송서비스 지원
-응용프로그램구분은 포트번호로, 서버는영구포트번호 사용.
-TCP는 모든 데이터에 순서매김, UDP는 매기지 않음
-UDP는 체크섬기능외에 신뢰적인 전송기능 미지원. 손실,순서바뀜가능
-시간절약가능하고 고속통신가능

7.4.2 UDP 데이터 전송 서비스
-TCP와 마찬가지로 통신통로는 소켓으로 정의됨
-소켓번호 = 아이피주소+포트번호
-별도의연결설정과정이 없고, 개별적인 연결소켓을 통해 서버-클라이언트 데이터통신수행
-항상 연결된상태가 아니므로, 데이터 전송시에 데이터와 함께 목적지 소켓주소를 지정하는 목적지지정송신 동작을 사용.(임의포트번호는 이 동작으로 결정됨)
-데이터수신시에는 출발지 소켓주소가 함께 수신되는 출발지지정수신 동작 사용. 그러므로 서버측에서 자료를 받더라도 송신자별로 따로 처리가능
-목적지지정송신,출발지지정수신 동작에서 지정되는 소켓의 주소는 멀티캐스트 사용가능.(TCP는 유니캐스트만 가능)

-출발지포트번호 : 서버가출발지이면 영구포트번호,클라가출발지이면 목적지지정송신으로 생성되는 임시포트번호
-목적지포트번호 : 서버가도착지이면 영구포트번호,클라가도착지이면 출발지지정수신으로 생성되면 임시포트번호
-아이피데이터그램에서 헤더를 빼면 UDP의 전체길이 (65535-20)
-체크섬 : 데이터그램의 오류를 탐지하기위해 부가적으로 추가되는 정보

의사헤더를 통해 목적지로 제대로 갔는지, 정보가 유효한지 확인가능, 실제로 전송은 되지 않고 수신측에서 다시 정보를 얻어내 활용.

'2013-summer > 컴퓨터네트워크' 카테고리의 다른 글

컴퓨터네트워크 9장  (0) 2013.07.18
컴퓨터네트워크 8장  (0) 2013.07.15
컴퓨터네트워크 5장  (0) 2013.07.08
컴퓨터네트워크 4장  (0) 2013.07.04
컴퓨터네트워크 3장  (0) 2013.07.01
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함