Skipalong's tistory
240304 TIL - TCP/IP 전송계층 본문
오늘은 TCP/IP 4계층에 대해 공부를 해 보았다. 그 중에 내가 발표를 맡은 전송계층에 대해 준비한 자료를 적어보겠다.
전송계층이란?
- 송신자와 수신자를 연결하는 통신 서비스를 제공
- 연결 지향 데이터 스트림 지원, 신뢰성, 흐름 제어를 제공
- 애플리케이션 계층과 인터넷 계층 사이의 데이터가 전달될 때 중계역할
- 대표적으로 TCP, UDP 가 있음
TCP와 UDP
- TCP
- 패킷 사이의 순서를 보장
- 연결지향 프로토콜을 사용해서 연결을 하여 신뢰성을 구축해서 수신 여부를 확인
- 가상회선 패킷 교환방식 사용
- 데이터의 손실 없는 전송을 보장
- 가상회선 패킷 교환방식
- 모든 패킷의 경로를 일정하게 유지
- 데이터를 패킷 단위로 나누어 전송
- 가상 연결 설정을 통해 전송되는 모든 패킷의 경로가 동일
- 패킷의 도착 순서가 일정 (출발/도착 순서 동일)
- 가상 회선 방식이 회선 교환 방식과 유사하지만, 회선 교환 방식은 패킷 기능을 지원하지 않음
- UDP
- 순서를 보장 X
- 수신 여부를 확인 X
- 빠른 데이터 전송을 중요시
- 실시간 스트리밍과 같은 빠른 전송 속도가 필요한 서비스에서 주로 사용
- 데이터그램 패킷 교환 방식 사용
- 데이터그램 패킷 교환방식
- 서로 다른 경로를 이용
- 비연결형 서비스
- 패킷을 독립적으로 전송(서로 다른 경로, 경로를 미리 할당하지 않음)
- 정보의 양이 적거나 상대적으로 신뢰성이 중요하지 않은 환경에서 사용
- 송신 호스트가 전송한 패킷은 보낸 순서와 무관한 순서로 수신 (서로 다른 경로, 네트워크 혼잡도에 따라 가변적)
TCP 연결 성립 과정
3-way handshake 방식
- SYN(Synchronization, 연결 요청 플래그)
- 클라이언트 — ISN(첫 번째 패킷에 할당된 임의의 시퀀스번호) →서버
- SYN+ACK
- 서버에서 SYN 수신, 서버 — 서버의 ISN, 승인번호(클라이언트의ISN+1) → 클라이언트
- ACK(Acknowledgement, 응답 플래그)
- 클라이언트 — 승인번호(서버의 ISN+1) → 서버
- 이러한 과정으로 신뢰성 구축
- UDP는 이 과정이 X → 신뢰성 X
TCP 연결 해제 과정
4-way handshake 방식
- 클라이언트 — FIN 세그먼트 → 서버
- 세그먼트?
2. 서버 — ACK 세그먼트 → 클라이언트
3. 클라이언트가 FIN_WAIT_2 상태가 되면 서버 — FIN 세그먼트 → 클라이언트
4. 클라이언트 — ACK → 서버
서버는 CLOSED상태, 클라이언트는 일정 시간 대기후 CLOSED상태
- 왜 일정시간 대기?
- 지연 패킷이 발생할 경우를 대비
- 패킷이 뒤늦게 도달하고 이를 처리하지 못할경우 데이터 무결성 문제발생
- 두 장치가 연결이 닫혔는지 확인하기 위함
- LAST_ACK상태에서 닫히게 되면 다시 새로운 연결을 하려고 할 때 장치는 줄곧 LAST_ACK로 되어있기 때문에 접속 오류가 생김
이렇게 TCP/IP 4계층의 전송계층에 대해 정리를 해 보았는데 이전에도 살펴본 부분이지만 네트워크쪽이 이해를 하기 조금 어려운 듯 해서 좀 더 깊은 이해를 위해선 계속 공부를 해야 할 것 같다.
'TIL' 카테고리의 다른 글
240306 TIL - SEO와 Https (0) | 2024.03.07 |
---|---|
240305 TIL - ARP/RARP, 홉바이홉 통신 (0) | 2024.03.06 |
240301 TIL - 프로그래머스 크레인 인형뽑기 (0) | 2024.03.02 |
240228 TIL - 네트워크 토폴로지와 병목 현상 (0) | 2024.02.29 |
240227 TIL - 객체지향 프로그래밍(OOP) (1) | 2024.02.28 |