인터넷
인터넷은 인터넷 프로토콜 스위트(TPC/IP)를 기반으로 하여 전 세계적으로 연결되어있는 컴퓨터 네트워크 통신망을 일컫는 말이다.
인터넷의 구성요소
- 해저 광케이블(지하에 있는 물리적인 선)
- 인공 위성
- 유/무선 방식으로 이름에 걸맞는 World wide web(WWW)가 구축되었다.
IP
인터넷 프로토콜 IP
- 인터넷 프로토콜은 인터넷이 통하는 네트워크에서 어떤 정보를 수신하고 송신하는 통신에 대한 규약을 의미한다.
IP 주소
- IP 주소는 쉽게 말하면 각 기기 간의 통신을 식별할 수 있는 전화번호 입니다. 앞서 설명한 최소한의 규칙을 지킬 수 있는 이유는 여러분이 잘 아시는 IP 주소 덕분입니다.
- 인터넷 통신 시에는 지정한 IP 주소에 데이터를 Packet 이라는 단위로 전달합니다.
Packet
- 소스 IP(출발지), 대상 IP(도착지)를 포함하고 있어서 어떤 컴퓨터에 데이터를 전송할지 판별할 수 있습니다.
- Packet은 크게 헤더(소스IP, 대상IP를 가르킨다.), 페이로드(보내터), 트레일러(수신 되었는지 여부를 판단)로 구분된다.
- 트레일러: 데이터를 주기만 하는 것이 아닌 받고 응답한다(중요)
IP 방식의 문제점
1. 애플리케이션 구분
- 대상 컴퓨터의 어떤 프로그램에 사용될 데이터인지 구분할 수 없다.
2. 비연결성
- 수신 대상의 현재 상태에 상관없이 데이터를 전송한다.(수신 대상의 컴퓨터가 꺼져있어도 그와 상관없이 소스 IP에서 패킷을 전송하고자 하면 전송함)
3. 비신뢰성
- 패킷이 소실되는 경우가 발생함(복잡한 네트워크를 통과할때 패킷이 소실될 수 있음)
- 패킷의 손상여부를 송신, 수신측 모두 알 수 없다.
- 패킷의 순서가 뒤죽박죽이 되어 섞여서 들어오는 경우가 발생한다.(1의 패킷을 먼저 보냈는데 대상 IP에는 2가 먼저 올 수 있다.)
위와 같은 문제점들을 해결해주는 것이 바로 TCP 프로토콜 입니다.
TCP
서버와 클라이언트 간에 데이터를 신뢰성 있게 전달하기 위해 만들어진 프로토콜
TCP 방식
- 3Way HandShake(물리적이 아닌 최소한의 논리적인 연결을 통하여 연결이 되었다고 가정하는것)
1. SYN: 저와 연결해주세요의 의미를 담고있음
2. ACK: 네 저와 연결해요의 의미를 담고있음(이 신호가 오지 않으면 연결이 실패 했다 생각하면 됨)
2. SYN: 저와 연결해주세요의 의미를 담고있음
3. ACK: 네 저와 연결해의의 의미를 담고있음(데이터도 함께 담아서 전송할 수 있다.)
- 데이터 전송 여부(ACK와 함께 데이터를 전송이 가능하기 때문에 데이터 전송 여부를 확인 할 수 있음)
- 패킷 순서(패킷 순서도 보장할 수 있음, 패킷이 나뉘어져 올지라도 순서를 보장한다.)
TCP 방식의 문제점
TCP는 신뢰성이 있지만 연결하는 과정, 데이터 전송에 시간이 많이 소요된다. TCP는 현재 단계 이상의 최적화를 하기 힘들다.(최소한의 논리적인 연결이 필요하기 때문)
3 Way HandShake 과정을 거치는 만큼 속도가 느리다.
UDP
비연결형, 신뢰성이 없는 전송 프로토콜이다. TCP의 신뢰성 보장 기능은 많은 애플리케이션에 유용했지만, 실시간 통시이나 스트리밍 애플리케이션에서는 빠른 전송이 중요했기 때문에 UDP는 이러한 요구를 충족하기 위해 개발되었다.
특징:
- 실시간성 보장 중요(온라인 게임, 인터넷 전화)
- IP 방식과 거의 비슷하다.(3 Way HandShake를 하지 않는다. 데이터 전송, 응답, 순서를 보장하지 않는다(비신뢰성)
- 추가적인 기능이 거의 없다.(기능이 없고 연결을 하지 않는 대신 속도가 빠르다.)
- IP와 차이점으로 PORT가 존재한다.(TCP에도 PORT가 존재한다.)
- 데이터 무결성 검사 -> 체크섬(Checksum)을 포함하고 있다.(잘못된 데이터가 전송되지 않도록 만들어준다.)
PORT
같은 IP 내에서 프로세스 구분을 하기 위해서 사용한다.(어떤 애플리케이션에서 사용할지 구분하기 위함)
- 패킷의 페이로드에는 자신의 PORT, 상대방의 PORT도 포함
자주 사용되는 PORT
- 0 ~ 65535 할당 가능
- 0 ~ 1023은 이미 사용되고 있는 포