반응형
SMALL
TCP/IP 프로토콜의 전송계층은 End-to-End
데이터 링크 계층
- 네트워크에서 시스템과 시스템을 연결한 구간인 "링크에서의 데이터 전송방법" 을 정의
전송 계층
- 네트워크 "양 끝 단의 송신 호스트와 수신 호스트 간의 효율적인 데이터 전송 방법"을 규정
- 네트워크 계층에서 IP 주소를 가지고 경로 설정을 하여 송신 호스트와 수신 호스트를 연결
-> 양 끝단 호스트 간의 연결 설정 방법을 규정
전송 계층 기능
흐름 제어
- 송신 호스트와 수신 호스트 간의 데이터를 주고 받는 "전송 속도 차이"를 제어해주는 기능
- ex) "슬라이딩 윈도우"로 송신 호스트가 보낼 수 있는 패킷 수를 제어
오류 제어
- 데이터의 분실, 오류 시 재전송을 통한 오류 제어
- ex) Selective ARQ, Stop and Wait ARQ, Go back N ARQ
분할과 병합
- 분할 -> 송신 측에서 데이터를 하위 계층인 네트워크 계층의 IP 패킷에 담기 "적합한 크기로 나누는" 과정
- 병합 -> 수신 측에서 수신한 패킷에서 제어 정보를 떼고 전송 계층에 올려준 "데이터를 결합"시키는 과정
서비스 프리미티브
- 전송 계층 사용자가 전송 계층 서비스를 사용하기 위한 인터페이스
- ex) 연결형 서비스와 비연결형 서비스
주소 표현
- 전송 계층 주소 : TSAP(Transport Service Access Point)
- 호스트 IP 주소와 전송 포트 번호의 조합
- "포트 번호는 통신 프로세스를 구별하는 번호"로 다수의 포트 번호가 존재하고, 상위 응용 서비스를 구분함.
- 잘 알려진 포트 : 1~1023 // 임의 포트 : 1024~65535
- 소켓 : IP 주소 + 포트 번호
캡슐화
- 송신 프로세스에서 제어 정보를 추가
역캡슐화
- 수신 프로세스에서 제어정보를 제거
연결 지향 서비스
- 호의 설정 -> 데이터 전송 -> 호의 해제
- 오류 제어, 흐름제어를 하여 신뢰성이 있음
- 많은 양의 데이터를 전송시에 사용
- TCP 프로토콜에 해당
비 연결 지향 서비스
- 호 설정 없이 브로드캐스트 방식으로 데이터 전송
- 오류 제어, 흐름 제어를 하지 않아서 신뢰성이 없음
- 적은 양의 데이터(망 관리 데이터 등)를 전송 시 사용
- "실시간" 서비스 제공
- UDP
소켓
- IP + 전송 계층 포트 번호
TCP 프로토콜
- 전송계층의 대표적인 프로토콜
- 연결형 서비스
- 오류제어+흐름제어 = 신뢰성
- 많은 양의 스트림 데이터 전송
- 혼잡 제어를 통한 트래픽 폭주상태 제어
- "세그먼트"라는 데이터 단위로 전송
- RFC 793에서 정의
TCP 포트 번호
- 포트 길이 : 16비트 (0~65535)
- 잘 알려진 포트 : 1~1023
- ex) 21(FTP), 23(TELNET), 25(SMTP), 80(HTTP)
TCP 소켓
http:// ... .... .... ....
80(포트번호) + IP주소 = 소켓
TCP 연결 설정 절차 (3-Way Handshake)
- 클라이언트가 서버로 SYN 신호를 전송하여 연결 설정 요청
- 서버가 클라이언트로 ACK 신호로 응답 전송과 함께 서버에서 클라이언트로부터 SYN 신호의 연결 설정 요청
- 클라이언트가 서버로 ACK 신호를 전송하여 응답.
- 피기백(Piggyback) 기능 사용 (-->> 요청과 응답이 한 패킷에 들어가있는것)
TCP 연결 해제 절차 (4-Way Handshake)
TCP Persist 타이머
- 수신 측의 Window Size 증가 여부를 확인하기 위해 일정 간격으로 송신 측에서 구동하는 타이머
- Window Size가 0인 패킷을 수신할 때 동작
TCP 재전송 타이머
- 재전송 타이머 값은 왕복시간(RTT, Round-Trip Time) 보다 약간 크면 됨
※왕복시간 : 클라이언트에서 출발한 세그먼트가 서버에 도착하여 승인을 클라이언트에게 되돌려 보내는 데 드는 시간 - 일반적인 RTT가 존재하지 않는 이유
- - 연결거리의 차이와 일시적인 지연시간과 변동성 때문
- - RTT 계산에 기반한 적응형 재전송 평균적인 지연시간을 계산
Silly Window Syndrome 현상
- 일정크기 이하의 적은 양의 TCP 세그먼트 데이터가 Connection을 통해 교환되는 현상
- 해결책
-> 수신 측은 작은 세그먼트를 통보X, Window가 one-full-sized 세그먼트로 증가할 때 통보
UDP 프로토콜
- 비연결형 (호 설정 절차 없이 브로드캐시트 방식)
- 비신뢰성 (오류제어, 흐름제어, 혼잡제어를 하지 않음)
- 적은 데이터의 다지점 전송 (상대적으로 적은 데이터 전송)
- 실시간 전송
데이터그램 전송
- 비연결형
- 분실 가능성
- 도착 순서 변경
다중화
- 송신 측에서는 사용자 데이터그램을 보내고자하는 여러 개의 프로세스 존재
- 송신 UDP는 하나만 있으므로 다중화가 필요
- UDP는 프로세스 포트 번호에 의하여 구분되는 서로 다른 메시지를 수신 --> 다중화
- 다중화된 데이터에 헤더를 추가하여 IP 계층으로 보냄
역다중화
- 수신 측에 UDP는 하나인데 프로세스 포트는 여러 개 존재하여 역다중화 필요
- 수신한 UDP에서 헤더를 제거하고 포트번호에 의거 메시지를 보냄
UDP 응용
- 단순한 요청-응답 통신을 하는 것이 적합
ex) DNS(53, 도메인에 대한 IP 요청 및 응답) - 내부에 흐름 제어와 오류 제어 매커니즘을 가진 프로세스에 적합
ex) TFTP(69, 프로세스는 오류 제어와 흐름 제어 프로세스를 가지고 있음) - 멀티캐스팅에 적합한 전송 프로토콜
ex) 네트워크 라우팅(RIP, OSPF) 프로토콜에 응용 - 네트워크 관리 응용에 적합
ex) SNMP(161)
반응형
LIST
'기초 물방울 > 네트워크' 카테고리의 다른 글
Telnet, FTP, SMTP, IMAP, SNMP (수업) #8 (0) | 2022.07.02 |
---|---|
주소변환, DNS, DHCP (수업) #7 (1) | 2022.07.01 |
라우팅, RIP, OSPF, IGRP (수업) #5 (0) | 2022.06.30 |
IPv6~ICMP~ARP (수업) #4 (0) | 2022.06.30 |
스위치~루핑~스패닝트리~IPv4(수업) (0) | 2022.06.30 |