TCP/IP란

Alex·2025년 1월 2일
0

CS를 공부하자

목록 보기
5/74

TCP/IP 계층이란?

[10분 테코톡] 🔮 수리의 TCP/IP

TCP/IP는 인터넷에서 컴퓨터들이 서로 정보를 주고받는데 쓰이는 프로토콜의 집합이다.

어플리케이션 레이어는 특정 서비스를 제공하기 위해 애플리케이션끼리 정보를 주고 받을 수 있따. FTP, HTTP, SSH, Telnet, SMTP

트랜스포터 레이어는 송신된 데이터를 수신측 애플리케이션에 확실하게 전달한다.
TCP, UDP, RTP, RTCP
포트번호를 사용해서 애플리케이션을 찾아주는 역할을 한다.

인터넷 레이어는 수신측까지 데이터를 전달하기 위해 사용된다.
IP, ARP, ICMP, RARP, OSPF

네트워크 액세스 레이어는 네트워크에 직접 연결된 기기간 전송을 한다.
이더넷, PPP 등

www.google.com을 입력하면 무슨 일이 일어날까?

  • 구글 메시지의 80포트로 위 사진의HTTP 요청을 보내는 것이다.

패킷을 만들어야 하는데, 각 계층에 필요한 정보를 담아야 한다.
애플리케이션 레이어에서는 HTTP 리퀘스트가 들어간다.


TCP는 위 사진의 TCP 패킷 헤더가 들어간다.(SP-시작 포트번호, DP-목적지 포트번호) 목적지 포트번호는 80

위사진은 IP헤더를 채우는 모습이다.(SA-시작 IP주소, DA-목적 IP주소) ip주소는 www.google.com를 활용해서 안다.

OS가 dns 서버에 위처럼 요청을 보낸다.dns 서버 주소는 이미 컴퓨터에 등록돼 있다.
(dns는 http이고 UDP를 쓴다)

이제 MAC주소를 알아야 한다. 구글 웹서버의 MAC 주소를 알아야 하나? 여기선 물리적으로 ㅇ녀결된 우리집 공유기의 MAC주소를 알아야 한다. 이걸 통해(게이트웨이) 다른 네트워크와 연결된다.

IP주소로 MAC주소를 알 수 있는데 이때 ARP 프로토콜을 사용한다.

요청을 보내기 전에 송신측과 수신측이 서로 연결되는 3way handshake가 필요하다.

참고로, PC는 private ip를 사용한다. 외부 네트워크 환경에서 ip를 찾지 못한다. 그래서 공유를 통해 나갈 때 public ip주소로 변환해야 한다. 이를 NAT, Network Address Translation이라고 한다.


구글 서버까지 가는 데 라우터를 거쳐서 간다.
도착하면, 패킷에 기록된 구글 서버 IP 주소로 MAC 주소를 얻어와야 한다.
ARP 프로토콜을 사용해서, MAC 주소 응답

이제 80포트가 적혀 있는 걸 보고 80번 포트를 쓰는 애플리케이션에 데이터를 준다.

서버 연결을 종료할때 4way handshake를 한다.
클라이언트가 서버에 fin 플래그 전송 ->서버는 클라이언트에 ack를 보낸다. 서버가 자신의 통신이 끝날 때까지 기다리고 fin을 보낸다. 클라이언트는 ack를 보낸다. 연결 종료

서버가 미리 보냈던 데이터가 fin보다 늦게 도착해서 이미 클라이언트가 닫아버리면? 그래서, 클라이언트는 일정기간 소켓을 열어둔다.(time_wait 타임)

profile
답을 찾기 위해서 노력하는 사람

0개의 댓글