[컴퓨터네트워크] TCP/IP의 개념 및 프로토콜 구조

[컴퓨터네트워크] TCP/IP의 개념 및 프로토콜 구조

원격지에 떨어진 컴퓨터를 제어하기 위한 로그인, 다량의 파일 전송, 이메일 기능에 대한 요구가 생겼다. 이러한 요구를 만족시키기 위해서 전송 제어 프로토콜인 TCP(Transimission Control Proocol)이 생겼다.
TCP 프로토콜의 가장 중요한 기능은 네트워크상에서 원하는 컴퓨터에 데이터를 안정하게 전송하는 것이다.
하지만 원하는 컴퓨터에 데이터를 정확하게 전송하기 위해서는 원하는 컴퓨터를 제대로 찾아 내는것이 중요하다.
그래서 네트워크 상에 있는 컴퓨터들 사이에서 서로의 위치를 확인할 수 있게 하기 위한 주소가 필요하다.
즉, IP 어드레싱(Internet Protocol Addressing)은 이렇게 상대 컴퓨터를 찾아 내기 위한 방법이다.

IP(비연결형)으로 주소를 찾고 TCP(연결형)으로 프로그램(80번포트)로 접속


TCP/IP를 간단하게 정리하면 
  • IP 는 "주소"
    • 인터넷 주소 지정과 라우팅
    • 단편화와 재조립
  • TCP는 "필터"
  • 전송할 데이터가 필터를 거쳐 원하는 주소에 도달함
  • 즉, 데이터가 안정적으로 목적지에 도착하기 위해 TCP/IP라는 통신 규약을 사용

컴퓨터와 네트워크 기기가 상호간에 통신하기 위해서는 서로 같은 방법으로 통신해야 함
  • 어떻게 상대를 찾고
  • 어떻게 상대에게 이야기를 시작하고
  • 어떤 언어로 이야기하며 
  • 어떻게 이야기를 종료할까와 같은 규칙을 결정할 필요가 있음
이와같이 서로 다른 하드웨어와 운영체제 등이 서로 통신을 하기 위해 모든 요소에 규칙이 필요함. 이러한 규칙을 TCP/IP라고 함


  • TCP는 연결 설정을 위해 SYN을 사용하고, 연결 해제를 위해서 FIN을 사용한다.
  • TCP 세그먼트에서 검사합(Checksum)의 포함은 필수
  • 전이중(full duplex) 연결 서비스를 제공한다.
  • 3-way 핸드셰이크(handshake)를 사용하여 연결을 설정한다.

TCP/IP : 원활한 통신을 가능하게 하는 "통신 규약(프로토콜)" = 통신 약속



TCP/IP 계층이란?

왜 이렇게 계층화를 했을까?

  • 장점이 충분하기 때문에
    • ex)  인터넷이 하나의 프로토콜로 되어있다면 사양 전체를 바꿔야 함
      하지만 계층화 되어있다면 해당 계층만 바꾸면 됨
    • 각 계층은 연결되어 있는 부분만 결정되어 있기 때문에, 각 계층의 내부는 자유롭게 설계 가능
    • 또한, 계층화로 인해 설계를 편하게 할 수 있음. 자신의 계층만 신경쓰면 됨

Application(애플리케이션) 계층

  • 유저에게 제공되는 애플리케이션에서 사용하는 통신의 움직임을 결정
  • FTP, DNS, HTTP등도 애플리케이션의 한가지
    • FTP(File Transfer Protocol) : 파일 전송 서비스(인터넷 망으로 연결되어 있는 멀리 떨어져 있는 서버로 파일을 올리거나 가져오기 위해 필요한 일종의 프로토콜)
    • DNS(Domain Name System) : 사람이 읽을 수 있는 도메인 이름(예 : www.amazon.com)을 머신이 읽을 수 있는 IP 주소(예: 192.0.2.44)로 변환
  • HTTP, FTP, TELNET, SMTP, POP3, IMAP, DNS, SNMP

Transport(트랜스포트) 계층

  • 2대의 컴퓨터 사이의 흐름을 제공
  • 서로 다른 성질을 가진 TCP와 UDP 두가지 프로토콜이 있음
  • TCP : Transmission Control Protocol
  • UDP : User Data Protocol
    • UDP는 TCP보다 안정성은 떨어지지만, 속도는 빠름
    • UDP는 TCP와 달리 데이터 수신에 대한 책임을 지지 않음

 Network(인터넷) 계층 (네트워크 계층)

  • IP가 Network계층에 포함됨
    • 4바이트로 이루어진 주소번호를 사용하여 각각의 node를 구분하고, 목적지를 찾아가게 됨. 
    • ex) IP Address : "192.168.100.100"와 같은 점을 3개찍는 형식으로 사용
  • 네트워크상에서의 패킷의 이동을 다룸
    • 패킷 : 전송하는 데이터의 최소 단위
  • 어떠한 경로를 거쳐 상대의 컴퓨터까지 패킷을 보낼지 결정함
    • 인터넷의 겨웅라면 상대 컴퓨터에 도달하는 동안에 여러 대의 컴퓨터랑 네트워크 기기를 거쳐서 상대방에게 전송되는데 그러한 길을 결정하는 것

Network Interface(링크) 계층 (물리 계층 & 데이터링크 계층)

  • 네트워크에 접속하는 하드웨어적인 면을 다룸
    • 물리적 계층으로 IP주소를 MAC 주소로 변환한다.
  • 디바이스 드라이버, 네트워크 인터페이스 카드를 포함 케이블 등과 같은 물리적으로 보이는 부분도 포함
    • 하드웨어적 측면은 모두 링크 계층의 역할
  • ex) 이더넷, IEEE 802, MAC/LLC, SLIP, PPP, HDLC



댓글

이 블로그의 인기 게시물

[소프트웨어공학] NS(Nassi-Schneiderman) 차트

[컴퓨터네트워크] Telnet이란?

[Python] # -*- coding: utf-8 -*-를 쓰는 이유