인터넷 작동 원리를 알기 전에 알아두어야 할 내용부터 보자.
1) TCP/IP
1) TCP/IP는 네트워크 프로토콜 스위트로, 온라인 상의 안전하고 효율적인 데이터 전송의 필수 요건을 정의함
2) 컴퓨터와 컴퓨터간의 지역네트워크(LAN), 광역네트워크(WAN)에서 원할한 통신을 가능하도록 하기 위한 통신 규약
3) 두 개의 기기 간에 데이터를 전송하는 것을 담당
WHY 2개의 기기 사이에서만 데이터 전송이 이루어질까?
인터넷 데이터가 전송되는 방식은 라디오와는 다름. 수백 대의 컴퓨터 사이에서 활발하게 데이터가 공유되고 있는 것처럼 보여도, 사실 모든 데이터 교환에는 2대의 기기만 개입됨
4) 하나의 프로토콜이 아닌 TCP와 IP를 합쳐서 부르는 말
1) 1983년에 표준 방식으로 정해짐. 당시 NCP(Network Control Protocol)을 대체하면서, 오는날 우리가 이용하는 인터넷이 탄생함
2) 최초는 ARPANET(최초의 컴퓨터)로 시작됨 -> 미국방위통신청에서 컴퓨터간의 통신을 위해 TCP/IP를 사용하도록 한 것이 시초가 됨
1) TCP
2) IP
----> 데이터 전송의 과정에서 TCP와 IP 각각 담당하는 작업이 있지만, 결국에는 같은 결과를 목표로 하기 때문에 한 명칭으로 알려지기도 함
::즉 TCP/IP를 말한다는 것은 송신자가 수신자에게 IP 주소를 사용하여 데이터를 전달하고 그 데이터가 제대로 갔는지, 너무 빠르지는 않는지, 제대로 받았다고 연락은 오는지에 대한 이야기를 하는 것
TCP/IP는 4계층 또는 5계층으로 구성되어, OSI 7계층 모델을 대체
5계층으로 구분하려면 링크 계층을 물리 계층과 데이터 링크 계층으로 나눔
각 계층은 담당하는 위치마다 처리 역할을 구분해 진행함으로 서로 간의 간섭을 최소화하여 사용의 편리성을 높임
실제 사용되는 TCP/IP는 OSI 참조 모델을 기반으로 상업적이고 실무적으로 이용될 수 있도록 단순화된 모형이다
--> 크게 ① 데이터 전송을 담당하는 네트워크 인터페이스 계층, 인터넷 계층, 전송 계층과 ② 전송된 데이터의 내용을 보내고 사용자가 이용할 수 있는 서비스를 제공하는 응용 계층으로 나뉨
실제 사용되는 TCP/IP는 OSI 참조 모델을 기반으로 상업적이고 실무적으로 이용될 수 있도록 단순화된 모형
네트워크 전송 시 데이터 표준을 정리한 것이 OSI 7계층, 이 이론을 실제 사용하는 인터넷 표준이 TCP/IP 4계층
OSI는 7계층, TCP/IP는 4계층
데이터 단위 : Data/Message
ex) 파일 전송, 이메일, FTP, HTTP, SSH, Telnet, DNS, SMTP 등
● HTTP (Hyper-Text Transfer Protocol) : TCP기반의 프로토콜로 포트번호 80번을 사용합니다.
● Telnet : TCP 포트번호 23번을 사용합니다. 원격 터미널을 접속할때 이 포로토콜을 사용합니다.
● SSH (Secure Shell) : 텔넷과 같은 서비스는 보안에 취약합니다. 비밀번호가 암호화되지 않아 그대로 노출이 되기 때문이지요. 이것을 보완한것이 SSH입니다. 포트번호 22번을 사용합니다.
● FTP(File Transfer Protocol) : 파일 전송 프로토콜입니다. 파일을 받거나 올릴때 FTP를 사용하지요. FTP는 파일을 올리거나 내려받을때 신뢰성을 중요시하기 때문에 TCP에서 동작하구요. 2개의 포트를 사용합니다.
TCP 포트 20번은 데이터 전송을 위한 용도, TCP 포트 21번은 제어용으로 사용합니다.
● SMTP (Simple Mail Transfer Protocol) : 메일 전송 프로토콜입니다. TCP 상에서 동작하며 포트는 25번을 사용합니다.
● POP3 (Post Office Protocol Version3) : 메일 수신용 프로토콜입니다. 아웃룩같은 프로그램이 POP3라는 프로토콜을 사용하여 동작합니다. TCP 포트 110번을 사용합니다.
● DNS (Domain Name System) : 도메인명에 대한 호스트 정보를 제공해줍니다. 기본적으로 UDP상에서 동작합니다. 기본적으로 실패하면 다시 한번 요청하면 되며 그렇게 중요한 정보가 아니기 때문이죠. 하지만 신뢰성을 요할 경우에는 TCP상에서도 동작합니다. 데이터의 길이가 길 경우같은 때 TCP 기반으로 동작할 수 있습니다.
UDP, TCP 포트 53번을 사용합니다.
데이터 단위 : Segment
전송 주소 : port
ex) 프로토콜 – TCP, UDP, RTP, RTCP
● TCP (Transmission Control Protocol) : 신뢰성있는 연결지향형 프로토콜입니다. 신뢰성있다는 말은 그 페킷에 대한 오류처리나 재전송따위로 에러를 복구하는 것을 말합니다. 그때문에 TCP의 헤더에 붙는 정보가 많습니다.
● UDP (User Datagram Protocol) : 비신뢰성 비연결형 프로토콜입니다. 페킷을 잃거나 오류가 있어도 대처하지 않는 것을 말합니다. 따라서 UDP헤더는 간단한 구조를 갖고 있습니다.
● RTP (Real Time Transport Protocol) : 실시간 전송 프로토콜입니다. 인터넷을 통해 오디오 및 비디오를 전달하는 표준 패킷 형식을 정의
● RTCP (RTP Control Protocol) : 별도의 제어용 프로토콜, RTP 패킷 스트림 내에 포함되어 주기적으로 모든 세션 참가자들에게 전송함으로써, 트워크 회선 상에 전송지연, 대역폭변화 등 상태 정보를 상위계층에게 알려줌
데이터 단위 : 패킷
전송 주소 : ip
● IP(Internet Protocol) : 비신뢰성, 비연결지향 데이터그램 프로토콜입니다.
● ARP(Address Resolution Protocol) : 주소변환 프로토콜입니다. IP주소를 MAC주소로 변환하는 프로토콜이지요.
● RARP(Reverse ARP) : 반대로 MAC주소로 IP주소를 찾는 프로토콜입니다.
● ICMP(Internet Control Message Protocol) : 상태 진단 메시지 프로토콜인데요. 이 프로토콜을 이용하는 대표적인 프로그램이 ping입니다.
● IGMP(Internet Group Message Protocol) : 멀티캐스트용 프로토콜입니다.
● OSPF (Open Shortest Path First) : 하나의 AS(Autonomous System)안에서 동작하는 Link State Routing Protocol로, 인터넷 프로토콜인 IP 네트워킹에서 사용하기 위한 계층구조 동적 라우팅 프로토콜
데이터 단위 : 프레임
전송 주소 : MAC
*MAC 주소(Media Access Control Address) : 컴퓨터의 하드웨어 주소
ex) MAC, LAN, 패킷망 등에 사용되는 것
-- Ethernet, PPP, Token Ring 등
1) 데이터 전송 시 : 데이터는 상위 계층에서 하위 계층으로 이동하고, 계층 이동마다 필요한 정보(헤더)가 추가됨 --> 이를 캡슐화라고 함
2) 데이터 수신 시 : 데이터는 하위 계층에서 상위 계층으로 이동하고, 계층 이동마다 추가된 헤더를 읽고 알맞은 행동을 취한 후, 헤더를 제거함 --> 이를 역캡슐화라고 함
1) SYN(연결 시작) : TCP 세션을 initate 하기 위해 가장 먼저 보내는 시퀀스 비트
2) ACK(확인 응답) : SYN 패킷에 응답하는 패킷으로 일반적으로 +1하여 응답하는 비트
3) RST(강제 연결 종료) : 리셋하기 위한 과정으로 비정상적인 세션을 끊거나 즉시 연결을 끊고자 하는 비트
4) PSH(삽입) : 주로 대화형 패킷에 사용되고, 대기 시간 없이 즉시 7계층으로 바로 전송하는 비트
5) URG(긴급) : Urgent 말 그대로 긴급 시를 대비하여 우선순위를 높게 설정하여 전송하는 비트(실행 취소 등)
6) FIN(종료) : 세션을 종료시키기 위한 비트 (TCP 세션을 종료시키고자 할 때 발생시키고 종결 응답을 FIN ACK로 수신됨)