Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
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 31
Tags
more
Archives
Today
Total
관리 메뉴

Skipalong's tistory

240304 TIL - TCP/IP 전송계층 본문

TIL

240304 TIL - TCP/IP 전송계층

Skipalong 2024. 3. 5. 02:58

오늘은 TCP/IP 4계층에 대해 공부를 해 보았다. 그 중에 내가 발표를 맡은 전송계층에 대해 준비한 자료를 적어보겠다.

전송계층이란?

  • 송신자와 수신자를 연결하는 통신 서비스를 제공
  • 연결 지향 데이터 스트림 지원, 신뢰성, 흐름 제어를 제공
  • 애플리케이션 계층과 인터넷 계층 사이의 데이터가 전달될 때 중계역할
  • 대표적으로 TCP, UDP 가 있음

TCP와 UDP

  • TCP
    • 패킷 사이의 순서를 보장
    • 연결지향 프로토콜을 사용해서 연결을 하여 신뢰성을 구축해서 수신 여부를 확인
    • 가상회선 패킷 교환방식 사용
    • 데이터의 손실 없는 전송을 보장
    • 가상회선 패킷 교환방식
      • 모든 패킷의 경로를 일정하게 유지
      • 데이터를 패킷 단위로 나누어 전송
      • 가상 연결 설정을 통해 전송되는 모든 패킷의 경로가 동일
      • 패킷의 도착 순서가 일정 (출발/도착 순서 동일)
      • 가상 회선 방식이 회선 교환 방식과 유사하지만, 회선 교환 방식은 패킷 기능을 지원하지 않음

  • UDP
    • 순서를 보장 X
    • 수신 여부를 확인 X
    • 빠른 데이터 전송을 중요시
    • 실시간 스트리밍과 같은 빠른 전송 속도가 필요한 서비스에서 주로 사용
    • 데이터그램 패킷 교환 방식 사용
    • 데이터그램 패킷 교환방식
      • 서로 다른 경로를 이용
      • 비연결형 서비스
      • 패킷을 독립적으로 전송(서로 다른 경로, 경로를 미리 할당하지 않음)
      • 정보의 양이 적거나 상대적으로 신뢰성이 중요하지 않은 환경에서 사용
      • 송신 호스트가 전송한 패킷은 보낸 순서와 무관한 순서로 수신 (서로 다른 경로, 네트워크 혼잡도에 따라 가변적)

TCP 연결 성립 과정

3-way handshake 방식

  1. SYN(Synchronization, 연결 요청 플래그)
  2. 클라이언트 — ISN(첫 번째 패킷에 할당된 임의의 시퀀스번호) →서버
  3. SYN+ACK
  4. 서버에서 SYN 수신, 서버 — 서버의 ISN, 승인번호(클라이언트의ISN+1) → 클라이언트
  5. ACK(Acknowledgement, 응답 플래그)
  6. 클라이언트 — 승인번호(서버의 ISN+1) → 서버
  • 이러한 과정으로 신뢰성 구축
  • UDP는 이 과정이 X → 신뢰성 X

TCP 연결 해제 과정

4-way handshake 방식

  1. 클라이언트 — FIN 세그먼트 → 서버
  • 세그먼트?

2. 서버 — ACK 세그먼트 → 클라이언트

3. 클라이언트가 FIN_WAIT_2 상태가 되면 서버 — FIN 세그먼트 → 클라이언트

4. 클라이언트 — ACK → 서버 
    서버는 CLOSED상태, 클라이언트는 일정 시간 대기후 CLOSED상태

  • 왜 일정시간 대기?
    1. 지연 패킷이 발생할 경우를 대비
    2. 패킷이 뒤늦게 도달하고 이를 처리하지 못할경우 데이터 무결성 문제발생
    3. 두 장치가 연결이 닫혔는지 확인하기 위함
    4. LAST_ACK상태에서 닫히게 되면 다시 새로운 연결을 하려고 할 때 장치는 줄곧 LAST_ACK로 되어있기 때문에 접속 오류가 생김

 

이렇게 TCP/IP 4계층의 전송계층에 대해 정리를 해 보았는데 이전에도 살펴본 부분이지만 네트워크쪽이 이해를 하기 조금 어려운 듯 해서 좀 더 깊은 이해를 위해선 계속 공부를 해야 할 것 같다.