TCP/IP

이승현·2022년 11월 4일
0

인터넷 작동 원리를 알기 전에 알아두어야 할 내용부터 보자.

1) TCP/IP

<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를 사용하도록 한 것이 시초가 됨


<TCP와 IP의 차이점>

1) TCP

  • TCP는 전송 제어 프로토콜 (Transmission Control Protocol)의 약자이며 한 기기에서 다른 기기로 데이터 전송하는 것을 담당

2) IP

  • IP는 인터넷 프로토콜(Internet Protocol)의 약자이며 이 프로토콜은 데이터의 조각을 최대한 빨리 대상 IP 주소로 보내는 역할을 표시

----> 데이터 전송의 과정에서 TCP와 IP 각각 담당하는 작업이 있지만, 결국에는 같은 결과를 목표로 하기 때문에 한 명칭으로 알려지기도 함


<TCP/IP의 역할>

  • IP 주소의 체계를 따르고 IP Routing을 이용해 목적지에 도달하며 TCP의 특성을 활용해 송신자와 수신자의 논리적 연결을 생성하고 신뢰성을 유지할 수 있도록 하겠다는 것을 의미

::즉 TCP/IP를 말한다는 것은 송신자가 수신자에게 IP 주소를 사용하여 데이터를 전달하고 그 데이터가 제대로 갔는지, 너무 빠르지는 않는지, 제대로 받았다고 연락은 오는지에 대한 이야기를 하는 것


<TCP/IP : 계층>

  • TCP/IP는 4계층 또는 5계층으로 구성되어, OSI 7계층 모델을 대체

  • 5계층으로 구분하려면 링크 계층을 물리 계층과 데이터 링크 계층으로 나눔

  • 각 계층은 담당하는 위치마다 처리 역할을 구분해 진행함으로 서로 간의 간섭을 최소화하여 사용의 편리성을 높임

  • 실제 사용되는 TCP/IP는 OSI 참조 모델을 기반으로 상업적이고 실무적으로 이용될 수 있도록 단순화된 모형이다

    --> 크게 ① 데이터 전송을 담당하는 네트워크 인터페이스 계층, 인터넷 계층, 전송 계층과 ② 전송된 데이터의 내용을 보내고 사용자가 이용할 수 있는 서비스를 제공하는 응용 계층으로 나뉨

  • 실제 사용되는 TCP/IP는 OSI 참조 모델을 기반으로 상업적이고 실무적으로 이용될 수 있도록 단순화된 모형

  • 네트워크 전송 시 데이터 표준을 정리한 것이 OSI 7계층, 이 이론을 실제 사용하는 인터넷 표준이 TCP/IP 4계층

TCP/IP의 계층 구조

OSI는 7계층, TCP/IP는 4계층

1) 응용 계층 (Application Layer)

데이터 단위 : Data/Message

  • 사용자와 가장 가까운 계층으로 사용자가 소프트웨어 application과 소통할 수 있게 해준다
  • 응용프로그램(application)들이 데이터를 교환하기 위해 사용되는 프로토콜
  • 사용자 응용프로그램 인터페이스를 담당

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번을 사용합니다.

2) 전송 계층 (Transport Layer)

데이터 단위 : Segment
전송 주소 : port

  • OSI 7계층의 전송 계층에 해당
  • 통신 노드 간의 연결을 제어하고, 신뢰성 있는 데이터 전송을 담당

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 패킷 스트림 내에 포함되어 주기적으로 모든 세션 참가자들에게 전송함으로써, 트워크 회선 상에 전송지연, 대역폭변화 등 상태 정보를 상위계층에게 알려줌

3) 인터넷 계층 (Internet Layer)

데이터 단위 : 패킷
전송 주소 : ip

  • OSI 7계층의 네트워크 계층에 해당
  • 통신 노드 간의 IP패킷을 전송하는 기능과 라우팅 기능을 담당
    -- ip : 데이터 전송을 위한 주소 지정
    -- 라우팅 기능 : 경로 설정
  • 네트워크상 최종 목적지까지 정확하게 연결되도록 연결성을 제공
    ex) 프로토콜 – IP, ARP, RARP, ICMP, IGMP, OSPF

● 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 네트워킹에서 사용하기 위한 계층구조 동적 라우팅 프로토콜

4) 네트워크 인터페이스 계층 (Network Interface Layer)

데이터 단위 : 프레임
전송 주소 : MAC

  • 물리적으로 데이터가 네트워크를 통해 어떻게 전송되는지를 정의
    -- 논리주소(ip주소 등)이 아닌 물리주소(mac 주소 등)을 참조해 장비 간 전송
  • OSI7 계층의 물리 계층과 데이터링크 계층의 역할을 바로 이 계층이 담당
  • 기본적으로 에러검출/패킷의 프레임화 담당
    프레임(Frame)단위의 데이타 구성
  • 최종적으로 데이타 전송을 하기 전 패킷헤더에 MAC주소와 오류 검출을 위한 부분을 첨부

*MAC 주소(Media Access Control Address) : 컴퓨터의 하드웨어 주소
ex) MAC, LAN, 패킷망 등에 사용되는 것
-- Ethernet, PPP, Token Ring 등


<TCP/IP 계층의 캡슐화, 역캡슐화>

1) 데이터 전송 시 : 데이터는 상위 계층에서 하위 계층으로 이동하고, 계층 이동마다 필요한 정보(헤더)가 추가됨 --> 이를 캡슐화라고 함

2) 데이터 수신 시 : 데이터는 하위 계층에서 상위 계층으로 이동하고, 계층 이동마다 추가된 헤더를 읽고 알맞은 행동을 취한 후, 헤더를 제거함 --> 이를 역캡슐화라고 함

  • 계층 별로 추가되는 헤더는 아래와 같음

<TCP 통신을 하기 위해 사용하는 컨트롤 플래그>

  • 모든 플래그는 1비트로 정의되고 아래의 순서대로 배열됨

1) SYN(연결 시작) : TCP 세션을 initate 하기 위해 가장 먼저 보내는 시퀀스 비트
2) ACK(확인 응답) : SYN 패킷에 응답하는 패킷으로 일반적으로 +1하여 응답하는 비트
3) RST(강제 연결 종료) : 리셋하기 위한 과정으로 비정상적인 세션을 끊거나 즉시 연결을 끊고자 하는 비트
4) PSH(삽입) : 주로 대화형 패킷에 사용되고, 대기 시간 없이 즉시 7계층으로 바로 전송하는 비트
5) URG(긴급) : Urgent 말 그대로 긴급 시를 대비하여 우선순위를 높게 설정하여 전송하는 비트(실행 취소 등)
6) FIN(종료) : 세션을 종료시키기 위한 비트 (TCP 세션을 종료시키고자 할 때 발생시키고 종결 응답을 FIN ACK로 수신됨)

0개의 댓글