[네트워킹] TCP/IP + HTTP

TToII·2022년 2월 7일
0

네트워킹

목록 보기
1/5

TCP/IP란 ?

  • 인터넷의 기본 통신 언어
  • 데이터가 의도된 목적지에 닿을 수 있도록 보장해주는 통신 규약
  • 인터넷으로 디바이스를 연결하는 네트워크 프로토콜의 집합이며 개별적인 네트워크 프로토콜로 사용될 수도 있다.

TCP란?

  • 클라이언트와 서버간에 데이터를 신뢰성 있게 전달하기 위해 만들어진 프로토콜이다.
  • 데이터를 전송하기 전에 연결을 만드는 연결지향 프로토콜이다.
  • 데이터는 네트워크 선로를 통해 전달되는 과정에서 손실되거나 순서가 뒤바뀌어 전달될 수 있는데, TCP는 손실을 검색해내서, 이를 교정하고 순서를 재조합할 수 있도록 해준다.

IP란?

Internet Protocol의 줄임말로, 인터넷에서 컴퓨터의 위치를 찾아서 데이터를 전송하기 위해 지켜야할 규약

✅ 각 계층이 하는 일

  • 네트워크 접근 계층 : 인터넷 계층에서 생성된 패킷을 전기신호 또는 광신호로 바꾸어 전달
  • 인터넷 계층 : IP(Internet Protocol)이 존재하는 계층, 라우팅 방법을 정의하고 데이터 전달의 신뢰성을 책임짐
  • 전송 계층 : TCP, UDP가 존재하는 계층, 인터넷 계층에서 결정한 목적지까지 실제 데이터를 전송
  • 응용 계층 : 응용 프로그램들 간의 데이터 통신이 이루어짐(SMTP, FTP, HTTP)

1계층 : 네트워크 접근 계층 (Network Access(or Interface) Layer)

✔︎ Node-To-Node 간의 신뢰성 있는 데이터 전송을 담당
✔︎ 물리적인 주소로 MAC을 사용
✔︎ LAN, 패킷망 등에 사용
✔︎ 에러검출 기능(Detecting errors), 패킷의 프레임화(Framing packets)
📝 주요 프로토콜 : Ethernet, Token Ring, Frame Relay, ATM ...


2계층 : 인터넷 계층 (Internet Layer)

✔︎ OSI 계층의 네트워크 계층에 해당 (3계층에 해당)
✔︎ 호스트간의 라우팅 담당
✔︎ 상위 트랜스포트 계층으로부터 받은 데이터에 IP패킷 헤더를 붙혀 IP패킷을 만들고 이를 전송
✔︎ 어드레싱(addressing), 패키징(packaging), 라우팅(routing) 기능을 제공
✔︎ 통신 노드 간의 IP패킷을 전송하는 기능과 라우팅 기능을 담당
📝 주요 프로토콜
IP(Internet Protocol) : 비신뢰성, 비연결지향 데이터그램 프로토콜
ARP(Address Resolution Protocol) : 주소변환 프로토콜 (ip주소를 MAC주소로 변환하는 프로토콜)
RARP(Reverse ARP) : 반대로 MAC주소로 IP주소를 찾는 프로토콜
ICMP(Internet Control Message Protocol) : 상태 진단 메시지 프로토콜. (대표적 프로그램 : ping)
IGMP(Internet Group Management Protocol) : 멀티캐스트용 프로토콜
OSPF(Open Shortest Path First) : 링크 상대 라우팅 프로토콜 (인터넷에서 연결된 링크의 최적의 경로를 선택함)


3계층 : 전송 계층 (Transport Layer)

✔︎ 프로세스간의 신뢰성있는 데이터 전송을 담당
✔︎ 통신 노드 간의 연결을 제어
✔︎ 네트워크 양단의 송수신 호스트 사이에서 신뢰성 있는 데이터 전송을 담당
📝 주요 프로토콜 : TCP, UDP


4계층 : 응용 계층 (Application Layer)

✔︎ 사용자와 가장 가까운 계층
✔︎ 서버나 클라이언트 응용 프로그램이 이 계층에서 동작
✔︎ 동작하기 위해서는 전송계층의 주소, 즉 포트번호를 사용
✔︎ TCP/UDP 기반의 응용 프로그램을 구현할 때 사용
📝 응용 계층 프로토콜의 종류

  • 파일전송
    • FTP(파일을 받거나 올릴때 사용. 데이터 전송 포트번호 :20, 제어용 : 21)
    • TFTP
  • 원격 로그인
    • Telnet (원격 터미널을 접속할 때 사용. 포트번호 : 23)
  • 전자메일 범주
    • SMTP(메일 전송 플호토콜, TCP 포트번호 : 25)
    • POP3(메일 수신용 프로토콜. TCP 포트번호:110)
  • 지원 서비스 범주
    • DNS
    • SNMP
  • 기타 프로토콜
    • HTTP (TCP기반의 프로토콜. 포트번호:80)
    • SSH(보안이 약한 텔넷을 보완한 프로토콜. 포트번호:22)

TCP/IP 와 HTTP

  1. 먼저 출발지 클라이언트의 응용 프로그램 계층(HTTP)에서 어떤 웹 페이지를 보기 위해 HTTP 요청을 지시한다.
  2. 전송계층(TCP)에서는 응용프로그램 계층에서 받은 데이터를 통신하기 좋은 크기로 자른 후 번호와 포트를 부여하고 네트워크 계층으로 전달한다.
  3. 네트워크 계정(IP)에서는 전송할 곳의 IP 주소를 추가하고 연결계층으로 전달한다.
    이것으로 네트워크를 통해 HTTP 요청을 전달 할 준비가 끝난다.
  4. 도착지 서버는 연결 계층에서 데이터를 받아 상위계층으로 전달해 응용프로그램 계층까지 전달한다.
  5. 응용프로그램 계층에 도착하면 비로소 클라이언트가 보낸 HTTP 요청 내용을 받을 수 있다.

HTTP와 깊게 연관된 프로토콜들..!

☑️ 전송을 담당하는 IP
IP는 계층으로 따지면 네트워크 계층에 해당한다. 인터넷 프로토콜이라는 이름에서 알 수 있듯이 실제로 인터넷을 활용하는 모든 시스템이 IP를 사용하고 있다. IP의 역할은 각 패킷을 상대방에게 전달하는 것이다. 패킷이 상대방에게 전달되기 위해서는 여러가지 조건이 필요하다. 그 중에서도 각 노드의 위치를 나타내는 IP주소의 역할은 중요하다. 목적지까지 중계를 해주는 도중의 컴퓨터 또는 라우터와 같은 네트워크 장비는 목적지에 도착하기 위한 대략적인 행선지만 알고있다. 이런 구조를 라우팅이라고 한다.

☑️ 신뢰성을 담당하는 TCP
TCP는 전송계층에 해당하는 프로토콜로 신뢰성을 가진 바이트스트림을 사용한다. 바이트 스트림은 커다란 데이터를 보내기 쉽도록 TCP세그먼트라고 하는 단위의 패킷으로 작게 나누어 전송한다. 이때 각 패킷에는 번호가 붙기 때문에 누락된 패킷이 있는지 검증할 수 있고 신뢰도를 담보할 수 있다. 즉 TCP는 큰 데이터를 보내기 쉽도록 자른 후 확실히 상대에게 잘 도착했는지 확인하는 역할을 한다. TCP는 패킷에 플래그를 갖게 되는데, 플래그를 변경해서 몇 기능을 사용 할 수 있다.

☑️ 이름 변환을 담당하는 DNS
네트워크를 이용하는 컴퓨터는 IP주소와는 별개로 호스트 이름 www를 붙일 수 있다. DNS는 HTTP와 같은 응용프로그램 계층 시스템으로 주로 호스트 이름이나 도메인 이름 IP주소의 이름 변환을 제공한다. 이름 변환이란 사람이 쉽게 외우기 힘든 IP주소를 사람이 좀 더 외우기 쉬운 도메인 이름으로 변경하거나 반대로 도메인 이름을 IP주소로 변경하는 작업을 말한다.

profile
Hello World!

0개의 댓글