네트워크

TCP/IP, 3 way handshake, 흐름제어와 혼잡제어

cloudlim 2024. 2. 15. 21:40

TCP/IP
- TCP와 IP를 합쳐 부르는 말
 
IP
- OSI 7계층 > Layer 3 Network
- IP를 활용해, Endpoint가 도달할 목적지와 경로를 찾아줌(Routing이라 함)
 
TCP
- OSI 7계층 > Layer 4 Transport
 
TCP 기능
- 송/수신자간 논리적 연결 생성 및 유지: 통신하려는 양쪽 Endpoint들이 통신할 준비가 됐는지, 통신을 시작하면 데이터가 제대로 전송됐는지 또 도중에 변질되진 않았는지, 통신 후에는 수신자가 데이터를 얼마나 받았고 빠진 부분은 없는지 등을 점검
= 데이터 누락 없이 전달되는지 챙김
*통신하려는 Endpoint(단말)은 뭘로 알아? IP와 Port로. 둘이 HTTP 주고 받으려면 IP와 80 Port로 연결되어야 함
→ 다운로드 과정에 끊김이 없다? TCP 덕분
→ 빠짐 없이 데이터를 다운로드 받았다? TCP 덕분
▶ HTTP, HTTPS, FTP, SMTP 등과 같이 데이터를 안정적으로 모두 보내는 게 중요한 프로토콜들의 기반이 됨
*Layer 7의 프로토콜 HTTPS에서의 SSL handshake도 3 way handshake 이후에 진행됨
 
3 way handshake
1. 송신자가 수신자에게 SYN 날림(Port 열려 있어야 한다..)
2. 수신자가 SYN가 날라온 걸 확인하곤 송신자에게 SYN/ACK를 날림
3. 송신자가 SYN/ACK를 받고 ACK를 다시 날려서 데이터 전송 시작을 알림
→ Connection(논리적 연결)을 생성
▶ L4 스위치에선 Connection 리스트를 관리하고 서버 또는 클라이언트가 4 way handshake(연결 종료 과정)을 실시하면 L3 스위치에 있는 connection이 삭제됨
 
TCP 특징
- 흐름제어: 수신자의 한계를 계속 체크함(너 어디까지 받을 수 있니? 또 받을 수 있어?) 
ㄴTCP Header에 Window size라고 있는데, 이건 수신자가 정하는 정보임. 송신자한테 "나 얼만큼 받을 수 있고 이전에는 얼만큼 받았어요"라고 말하는 셈. "나 얼만큼 받았어요"할 수 있는 건 데이터에 순서가 있기 때문인데 그 번호를 Sequence Number라고 함. Sequence Number 100까지 받았으면 수신자가 송신자 한다 "이제 101 줘!"라고 전달하는데 이 숫자는 또 Acknowledgment Number라고 함
- 혼잡제어: 양쪽 Endpoint(단말)이 통신 가능 상태라도 네트워크 교통 체증이 꽉 막힌 상태면 데이터 배달 제대로 못감(가다가 상해..ㅋ)그니깐 일단 데이터 송출량을 낮게 잡고 보내기 시작함. 이걸 Slow Start라고 함. 간보면서 보내는 셈.




L4 스위치 쉽게 이해하기 #1(L4 스위치의 개요와 역할)

이번 문서 'L4 스위치 쉽기 이해하기'와 '서버 부하 분산 쉽게 이해하기', 다음에 이어질 문서인 'L4/L7 로드밸런싱 쉽게 이해하기'는 L4/L7 Network Swtich인 'F5 Networks' 장비를 기준으로 설명합니다. Alteo

aws-hyoh.tistory.com

네트워크 엔지니어 환영 블로그의 L4L7 쉽게 이해하기 참고