-
[TCP/IP] 트랜스포트 계층CS📟 2022. 8. 20. 18:56
트랜스포트 계층의 역할
- 애플리케이션 계층과 인터넷 계층 사이에 존재
- 수신지의 애플리케이션에 데이터를 전달하는 것
- TCP와 UDP를 주로 사용
- 포트 번호로 애플리케이션을 구분
TCP
- 데이터의 정확한 전달을 중요시
- 세그먼트 단위로 분할
- 데이터 본체 + TCP 헤더
- 헤더에 포트 번호나 일련번호가 포함
- 컨트롤 비트
- 현재 통신 상태를 표현하는 플래그 역할
- TCP 통신 제어
- 9개의 플래그가 ON/OFF로 상태 표현
- 컨트롤 비트
- 전송 속도 조절
- 통신 상태에 따라 전송량 조절
- 윈도우 사이즈에 수시로 현재의 수신 가능한 양을 알려줌 (흐름 제어)
- 버퍼가 가득 차면 일시 중지
- 윈도우 프로브 패킷이나 탐색 패킷을 보냄
- 네트워크 혼잡 플래그가 ON이면 송수신 양쪽에서 ECE, CWR 플래그를 이용해 속도 조절
- 실패 시 재전송
- 주고받은 바이트 수를 계산해서 차이가 있으면 재전송
- 커넥션을 맺는 과정에서 일련번호가 1씩 증가 -> 전송 시 데이터의 바이트 수만큼 증가 -> 수신 후 데이터의 바이트 수만큼 응답 번호에 플러스
- 응답 번호와 일련번호를 비교하여 주고받은 데이터의 바이트 수를 계산
- 응답이 일정기간 오지않아도 실패로 간주
- 응답을 기다리지 않고 연속된 데이터를 몰아서 보낸 후 동일한 응답 번호가 들어오면 실패로 간주
- 헤더 윈도우 사이즈에 버퍼의 크기를 설정해서 통보
- 선택적 확인 응답(SACK)
- 실패 시 패킷 전체를 보내는 것이 아닌 누락된 패킷만 보냄
- 송수신 양측이 지원해야 사용 가능
- 3 way handshake
- 커넥션을 맺는 과정
- 3단계
UDP
- 전송 속도를 중요시
- VoIP, 동영상 스트리밍 서비스에 많이 사용
- 데이터가 중간에 조금 소실되어도 무관
- 단순히 데이터 전송만 해서 빠르지만 데이터 손실 가능
- 브로드 캐스트와 멀티 캐스트 방식
- 게임처럼 속도와 신뢰성이 동시에 필요할 경우 애플리케이션 계층에서 흐름 제어나 혼잡 제어를 구현
포트 번호
- 애플리케이션에 어느 프로토콜로 전달할지에 대해서 포트번호로 판단
- 0 ~ 65535까지 사용
- IANA에서 관리(단체 이름)
- 웰 노운 포트
- 0~1023번
- 서버 프로그램이 수신 대기할 때 사용
- 미리 정해져 있다
- 레지스터드 포트
- 1024~49151번
- 벤더가 할당받아 사용하는 포트
- 다이내믹 포트
- 49152~65535번
- 클라이언트 프로그램이 사용하는 포트
- 자동으로 할당되어서 사용자는 미리 알 수 없음
- 비어있는 포트로 자동할당
서버에서의 구분
- 서버는 80번 포트로 수신 대기하고 받음
- 포트 번호와 IP 주소의 조합으로 클라이언트 식별
+ netstate 명령어로 네트워크 상태 확인 가능
'CS📟' 카테고리의 다른 글
[TCP/IP] 네트워크 인터페이스 계층 (0) 2022.09.04 [TCP/IP] 인터넷 계층 (0) 2022.08.28 [CS 스터디] TCP/IP CH2. 네트워크 서비스와 애플리케이션 계층 (0) 2022.08.14 상태코드의 종류 (0) 2022.08.14 [TCP/IP] CH1. 컴퓨터 네트워크와 TCP/IP (0) 2022.08.04