7/9 웹 기본 지식 - TCP, UDP, PORT, DNS
TCP 특징
전송 제어 프로토콜(Transmission Control Protocol)
• 연결지향 - TCP 3 way handshake (가상 연결)
:쟤랑 나랑 연결하고 메시지를 보냄. 진짜 연결이 된게 아니라 개념적으로 연결된것
• 데이터 전달 보증
:내가 메시지를 보낸 후 패킷이 누락되면 저쪽에서 메시지 못받았네? 알수있다
• 순서 보장
• 신뢰할 수 있는 프로토콜
• 현재는 대부분 TCP 사용
SYN(synchoronize)
서버가 꺼져있다면 SYN 메시지 보낸 후에 응답이 없겠지 그럼 메시지 안보내
요즘엔 최적화 되어있어서 3.ACK 보낼때 데이터도 같이 보냄
중간에 잘못 오면 서버가 클라이언트한테 2번부터 다시 보내라고 함
TCP 데이터 안에는 전송제어 정보, 순서, 검증 정보가 추가되어있기 때문에 이런것이 가능함
UDP 특징
사용자 데이터그램 프로토콜(User Datagram Protocol)
• 하얀 도화지에 비유(기능이 거의 없음)
• 연결지향 - TCP 3 way handshake X
• 데이터 전달 보증 X
• 순서 보장 X
• 데이터 전달 및 순서가 보장되지 않지만, 단순하고 빠름
• 정리
• IP와 거의 같다. +PORT +체크섬(메시지 검증 데이터) 정도만 추가
• 애플리케이션에서 추가 작업 필요
PORT : 하나의 IP에서 여러 애플리케이션(음악 듣기, 게임등) 패킷이 옴.
어떤 패킷인지 구분(음악용 패킷인지 게임용 패킷인지
한번에 클라이언트 PC가 여러개 서버와 통신해야함
내 IP로 패킷이 날라올텐데 어떤 패킷인지 알 수 없음 보낼 때도 마찬가지
IP + PORT라는 개념도 있는것.
IP : 목적지 서버를 찾는것
PORT : 서버 안에서 돌아가는 애플리케이션 구분
웹브라우저 요청 예시
200.200.200.3 , 80 포트에 메시지를 보내고 웹 브라우저가 html만들어서 응답할 때,
100.100.100.1 IP에, 포트는 10010으로 보내준다
서버에서 어떻게 내 포트 번호 까지 알지?
패킷 보낼때 출발지 IP,PORT도 같이 보내기 때문!
IP : 아파트, PORT : 몇 동 몇 호
한 아파트 안에서 사람들이 사는 집을 구분해준다
DNS
DNS 도메인 네임 시스템(Domain Name System)
• 전화번호부 같은 서버를 지원해줌
• 도메인 명을 등록하고 그걸 IP 주소로 변환
구글에 접근할래 -> 클라이언트가 도메인으로 찾음. DNS 서버에 구글 IP 줘 요청 -> DNS 응답해서 IP 주소 줌
인터넷 네트워크 정리
• 인터넷 통신
• IP(Internet Protocol) :복잡한 인터넷망에 메시지를 보내기 위해선 IP 있어야 한다.
IP의 한계 발생
• TCP : IP의 한계 해결
UDP(IP와 똑같은데 PORT 정보만 추가됨)
• PORT(같은 IP 안에서 동작하는 애플리케이션 구분하기 위해 사용)
• DNS(도메인 명을 등록해서 사용할 수 있도록 도와줌)