4주차_Network : 전송 계층

2023. 10. 28. 12:23SWLUG/Network

1. 전송 계층 개요
2. TCP 세그먼트 & TCP해더
3. 3-way handshake & 4-way handshake
4. TCP 에러제어
5. TCP 흐름제어
6. TCP 혼잡제어
7. 포트 번호
8. UDP

 

📌 전송 계층 개요

 

➡ 전송 계층 역할 ( 목적지에 신뢰할 수 있는 데이터를 전송할 수 있는 가? )

빨간색 네모박스가 전송계층

 

전송계층에는 TCP, UDP 가 있다.

 

전송 계층의 통신방식에 따라서 두가지로 나뉜다.

 

  • 연결형 통신: 신뢰성과 정확성(연결 필요)
    • Ex ) TCP 프로토콜
  • 비연결형 통신:  효율성(빠르게, 일방적인 통신) 
    • Ex ) UDP 프로토콜

 

 

 

전송 계층의 역할은 다음과 같다.

 

✓ TCP

✓ 연결형 서비스

✓ 재전송 서비스 (타이머)

✓ 전이중 서비스

✓ 흐름제어

✓ 에러제어

✓ 혼잡제어 등.

 

 

정리해보자면 전송계층은 목적지까지 신뢰할 수 있는 데이터를 전송하는 역할을 하며 오류 점검 및 데이터의 목적지가 어떤 애플리케이션인지를 식별하는 역할을한다.

주요 프로토콜 TCP,UCP가 있으며, 데이터 단위는 세그먼트이다.

 

 

📌 TCP 세그먼트 TCP 헤더

 

TCP 세그먼트

 

✓ 캡슐화 시 TCP 헤더 부착

✓ 역캡슐화 시 TCP 헤더 제거

 

TCP 헤더

 

✓ 출발지 포트 번호, 목적지 포트 번호

✓ 일련 번호, 확인 응답 번호

✓ TCP 플래그, 윈도우 크기

 

 

📌 3-way handshake & 4-way handshake

 

 

TCP 플래그 부분을 확대해보면 ,

 

 

이렇게 확인할 수 있는데 이를 코드비트라고 한다.

모두 1 bit씩 이루어져있다.

 

3-way handshake 의 경우,

연결 요청을 보내면 (SYN) , 확인하고 다시 연결 요청을 보낸다(SYN+ACK). 그러면 확인한다.(ACK)

이과정에서   ACK를 안하고 계속 SYN만 요청하는 것이SYNflood attack 이라고 학습 및 실습을 진행했던 기억이 난다.

 

4 -way handshake 의 경우,

FIN과정이 추가되고, 예를들어 A가 B에게 연결종료라는 FIN을 보내면 B는 확인ACK를 하고 , 다시 B도 연결종료라는 FIN을 보내면 A가 확인ACK를 보내는 구조이다. 

 

📌 TCP 에러제어

 

에러 제어에는 두가지 종류가 있다.

 

  • 에러 검출(detection)
    • CRC(cyclic Redundancy Check)
    • Checksum(체크섬)
  • 에러 정정(correction) / ARQ(Automatic Repeat Request)
    • Stop and Wait ARQ
    • Go – Back – n ARQ
    • Selective Repeat ARQ

 

 

TCP 에러제어에 대해 정리해보자면, 

 

✓ 세그먼트의 손실 및 훼손, 순서가 어긋난 경우, 중복된 경우 이에 대한 처리

✓ 신뢰성 있는 데이터 전송

 

에러 정정(ARQ)은 다음과 같이 세가지경우가 있다.

 

✓ Stop-and-wait

Timeout시 ack를 받지 못한 패킷부터 기다렸다가 재전송

✓ Go-Back-N

 Timeout시 ack를 받지 못한 패킷부터 '모두’ 다시 전송 

✓ Selective Repeat

Ack를 받지 못한 패킷을 선택적 재전송

 

 

📌  TCP 흐름제어

 

송수신지의 데이터 처리능력이 달라 데이터가 유실되는 것을 방지하는 기법을 말한다.

 

 

TCP 흐름제어에는 두가지가 있다.

 

  • Stop-and-Wait
  • 슬라이딩 윈도우(Sliding Window)
    • 윈도우 광고 기법

 

EX) Stop-and-Wait

 

A가 B에게 패킷0번을 전송한다. 0번 패킷 수신이 되고, 0번 ack를 전송한다.

그러면 A에서 0번 ack를 확인하고 다시 1번 패킷을 전송한다. 그러면 B는 1번 패킷을 수신받고, 1번 ack를 전송한다.

그러다가 1번 ack가 손실된다. 그러면 다시 1번 패킷을 재전송한다. 그래고 재전송을 감지한 B가 1번 ack전송한다.

1번 ack확인한 A는 다시 0번 패킷을 전송한다. 

이런식으로 반복되는게  Stop-and-Wait 흐름제어 방법이다.

 

✅ TCP 흐름제어에 대해 정리해보자면 다음과 같다.

 

TCP 흐름제어는 송수신지의 데이터 처리능력이 달라 데이터가 유실되는 것을 방지한다.

주로 슬라이딩 윈도우 기법 사용한다.

 

윈도우 광고 기법으로 서로의 윈도우 크기를 알려준다.

 

Rwnd(Receiver Window) : 수신측 윈도우를 뜻한다.

Cwnd(Congestion Window) : 송신측 윈도우를 뜻한다.

 

 

📌 TCP 혼잡제어

 

혼잡 제어

✓ 네트워크 내의 데이터를 조절하여 오버플로우(overflow)현상을 방지하는 기술을 말한다.

  • 혼잡 발생 전 
    • Slow Start
    • Additive Increase
  • 혼잡 발생 후 
    • Multiplicative Decrease
    • ssthresh 값을 cwnd 1/2로 축소한다.

혼잡 발생 인식하면 , 전송한 세그먼트를 재전송함.

3개의 중복된 ack 를 수신함.

 

 

📌 포트 번호

 

포트 번호란?

 

데이터의 목적지가 ‘어떤 애플리케이션인지 구분'하는 기능을 한다.

 

애플리케이션 포트 번호 설명
SSH 22 파일 전송
TELNET 23 원격지 호스트 연결
SMTP 25 메일 전송
DNS 53 도메인 네임 서비스
HTTP 80 웹 서비스
POP3 110 메일 수신
IMAP 143 메일 수신
HTTPS 443 웹 서비스 (보안 강화)

Well –Known 포트 번호 국제 인터넷 주소 관리 기구(IANA) 에서 관리한다.

 

📌 UDP

 

UDP 세그먼트 ( 캡슐화 시 UDP 헤더 부착 )

출발지 포트 번호
( 16 bit )
목적지 포트 번호
( 16 bit )
길이
( 16 bit )
체크섬
( 16 bit )

 

UDP는 그냥 전송!

 

  • 효율성
  • 비연결형 통신
  • 연결 확립 절차가 X
  • 브로드 캐스팅 전송 

[ 참고 자료 ]

 

브로드캐스팅 (네트워킹) - 위키백과, 우리 모두의 백과사전 (wikipedia.org)

 

브로드캐스팅 (네트워킹) - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 브로드캐스팅(broadcasting)은 송신 호스트가 전송한 데이터가 네트워크에 연결된 모든 호스트에 전송되는 방식을 의미한다. 컴퓨터 네트워킹, 정보 통신 및 방송

ko.wikipedia.org

이라는 특징이 있다.