웹 서비스는 클라이언트 , 서버로 구성
클라이언트와 서버는 서로 물리적으로 다른 위치에 구성된 경우가 대부분
인터넷 망을 사용하여 메세지를 전달해야한다.
인터넷 망은 수많은 노드들로 이루어져 복잡하다.
이 복잡한 인터넷 망에서 각 네트워크 마다의 고유의 주소가 있다.
이 주소를 IP 라고 한다. 이후 디바이스 고유 주소인 MAC 주소를 판별하여 원하는 디바이스로 찾아간다.
컴퓨터 네트워크에서 장치들이 서로 인식하고 통신 하기 위한 특수한 주소
인터넷에 연결되어 있는 모든 호스트나 라우터 장비의 인터페이스에 할당된 논리주소이며 목적지 컴퓨터가 위치한 네트워크를 찾기 위해 사용
ex) 클라이언트 IP : 100.100.100.1 / 서버 IP : 200.200.200.2
IP 역할
IP 프로토콜의 문제
이런 문제를 해결하기 위헛 TCP 프로토콜 등장
인터넷 프로토콜 계층
OSI 7계층과 TCP/IP 계층의 구조가 서로 조금 상이하다.
TCP/UDP는 전송 계층에 포함
프로토콜 계층
채팅 프로그램을 실행하고 Hello 라는 메시지를 전달하면 Hello 는 데이터는 각 계층을 지나 패킷이 아래 그림 처럼 변한다.
이를 캡슐화(Encapsulation) 이라고 한다.
전송 계층에서 TCP 패킷이 인터넷 계층을 지나면서 IP 패킷에 감싸지는데 아래 그림과 같다.
TCP 특징
TCP (Transmission Control Protocol)
연결 지향
TCP 3way handshake(논리적인 가상 연결)
연결 유뮤를 확인하고 메시지를 보내는 3-way handshaking 이 이루어짐
클라이언트가 SYN(연결요청)을 보내고 서버는 SYN/ACK를 보낸다.
클라이언트가 ACK를 보내면서 이루어진다.
이 때 서버가 해당 요청을 수락하지 못하면 전송이 이루어지지 않음
데이터 전달 보증
패킷이 중간에 누락되었는지 확인 가능
순서 보장
앞서 IP 패킷에 감사찐 정보에 순서를 함께 감싸게 된다.
패킷을 순서가 올바르지 않으면 서버는 잘못된 부분부터 다시 재송신하라는 응답
UDP (User Datagram Protocol)
3 way handshaking, 데이터 전달 보증, 순서 기능 모두 없음
다만 TCP에 비해서 속도가 빠르다.
IP와 거의 같지만 PORT, CheckSum 정도만 추가
※CheckSum
추가예정
PORT
우리가 사용하는 여러 웹 서비스를 사용하면 IP 패킷이 어떤 서버에서 오는지 알기 힘들다.
IP 주소는 한개이기 때문이다.
IP 포트라는 개념을 추가하여 다양한 프로그램이 동시에 독립적으로 패킷을 전송할 수 있다.
TCP 세그먼트에 출발지 PORT, 목적지 PORT를 같이 보내기 때문에 서버에서도 출발지 PORT, 목적지 PORT로 데이터를 전송
PORT를 통해서 같은 IP내의 프로세스를 구분