TCP / IP (Transmission Control Protocol / Internet Protocol)는 기본 통신 언어 즉, 컴퓨터들이 서로 정보를 주고받으며 인터넷으로 통신하는데 가장 기반이되는 통신규약(프로토콜)이라고 보면 된다 각 계층은 담당하는 위치마다 처리 역할을 구분해 진행함으로 서로 간의 간섭을 최소화하여 사용의 편리성을 높힌다
특징
- 호환성 보장 (다른 제조사 장비들끼리도 통신 가능)으로 인한 비용 절감
- 쉬운 문제 해결 (계층별로 문제 확인 가능)
- 다른 계층끼리는 각 전달 과정을 알 필요없어 데이터의 캡슐화와 은닉이 가능
TCP
최상위 계층인 TCP는 전송제어 프로토콜로 많은 양의 데이터를 가져 와 패킷으로 컴파일 후 다음 TCP 계층에서 수신하도록 전송하여 데이터의 누락, 순서 등 신뢰성과 속도를 보장하기 위해 사용되며 패킷을 유용한 정보 / 데이터로 바꾸는 역할을 한다
여기서 말하는 패킷이란?
HTTP 통신은 요청을 보내고 응답을 받을 때 정보들을 패킷에 일정한 크기로 자른뒤 넣어 보낸다
구조 : Header / Body
Header : 보내는 사람의 주소, 받는 사람의 주소, 패킷 생명시간
Body : 실제 전달하고자 하는 정보
IP
인터넷에서 컴퓨터의 위치를 찾아서 데이터를 전송하기 위해 지켜야 할 규약이며 네트워크상에서 다른 컴퓨터와 구별할 수 있도록 할당되는 주소이다. 맨 아래 계층인 IP는 올바른 목적지를 찾는 패킷 GPS!
하지만 IP만을 이용해서 통신을 하면 신뢰성과 연결성을 보장하지 못한다
결국 TCP를 IP위에서 사용한다
계층 모형
- 실제 사용되는 TCP / IP는 OSI 참도 모델을 기반으로 상업적이고 실무적으로 이용될 수 있도록 단순화된 모형
- 네트워크 전송시 데이터 표준을 정리한 것이 OSI 7계층
- 실제 사용되는 인터넷 표준이 TCP / IP 4계층
TCP / IP 4계층
TCP/IP 4계층 | 역할 | 데이터 | 단위전송 | 주소예시 | 장비 |
응용 계층(Application) | 응용프로그램 간의 데이타 송수신 | Data/Message | - | 파일 전송, 이메일, FTP, HTTP,SSH,Telnet,DNS, SMTP 등 |
- |
전송 계층(Transport) | 호스트 간의 자료 송수신 | Segment | Port | TCP, UDP, RTP, RTCP 등 | 게이트웨이 |
인터넷 계층(Internet) | 데이타 전송을 위한 논리적 주소 지정 및 경로 지정 | Packet | IP | IP, ARP, ICMP, RARP, OSPF | 라우터 |
네트워크 연결 계층(Network Access) | 실제 데이타인 프레임을 송수신 | Frame | MAC | Ethernet, PPP, Token Ring 등 | 브리지, 스위치 |
L4 응용 계층 (Application Layer)
- OSI 7계층의 세션 계층, 표현 계층, 응용 계층에 해당한다
- 사용자가 가장 가까운 계층으로 프로그램 (브라우저)가 데이터를 처음으로 받는 곳
- 응용프로그램들이 데이터를 교환하기 위해 사용되는 프로토콜을 정의
- 사용자 응용프로그램 인터페이스를 담당
- HTTP / SMTP등의 프로토콜을 가진다
- TCP / UDP 기반의 응용 프로그램을 구현할 때 사용
- FTP, HTTP, SSH, Telnet, DNS, SMTP
L3 전송 계층 (Transport Layer)
전송 주소 : Port
- OSI 7계층의 전송 계층에 해당
- 애플리케이션 계층의 세션과 데이터그램(datagram) 통신 서비스 제공
- 통신 노드 간의 연결을 제어하고, 신뢰성 있는 데이터 및 자료 송수신을 담당
- 세그먼트 (segment) 단위의 데이터 구성
- 실질적인 데이터 전송을 위해 데이터를 일정 크기로 나눈 것, 발신, 수신, 포트주소, 오류 검출 코드가 붙게된다
- TCP, UDP, RTP, RTCP
L2 인터넷 계층 (Internet Layer)
전송 주소 : IP
- OSI 7계층의 네트워크 계층에 해당
- 네트워크상 최종 목적지까지 정확하게 연결되도록 연결성을 제공
- 단말을 구분하기위해 논리적인 주소 (Logical address) IP를 제공
- 출발지와 목적지의 논리적 주소가 담겨있는 IP datagram이라는 패킷으로 데이터를 변경
- 데이터 전송을 위한 주소 지정
- 어드레싱(addressing), 패키징(packaging), 라우팅(routing) 기능을 제공
- 패킷 단위의 데이터 구성
- 세그먼트를 목적지까지 전송하기 위해 시작 주소와 목적지의 논리적 주소를 붙인 단위 : epdlxj + IP Header
- IP, ARP, ICMP, RARP, OSPF
L1 네트워크 연결 계층 (Network Access Layer / Network Interface Layer)
전송 주소 : MAC
- OSI 7계층의 물리계층과 데이터 링크 계층에 해당
- TCP/IP 패킷을 네트워크 매체로 전달하는 것과 네트워크 매체에서 TCP/IP 패킷을 받아들이는 과정을 담당
- 물리적으로 데이터가 네트워크를 통해 어떻게 전송되는지를 정의
- 논리주소(IP주소 등)이 아닌 물리주소(예. MAC주소(Media Access Control Address)을 참조해 장비간 전송
- MAC주소란 컴퓨터의 하드웨어 주소
- 에러 검출 기능(Detecting errors), 패킷의 프레임화(Fraimg packets)
- 프레임(Frame)단위의 데이타 구성
- 최종적으로 데이타 전송을 하기 전 패킷헤더에 MAC주소와 오류 검출을 위한 부분을 첨부
- MAC, LAN, 패킷망 등에 사용되는 것 예) Ethernet, PPP, Token Ring
참고 :
https://velog.io/@jehjong/개발자-인터뷰-TCPIP-4계층
https://coding-factory.tistory.com/613
https://velog.io/@sdc337dc/웹-개념-Http-통신
'Front-End > Web & 표준 & ETC' 카테고리의 다른 글
[Network] 웹 표준과 크로스 브라우징 (0) | 2022.02.26 |
---|---|
[Network] TCP vs UDP (0) | 2022.02.26 |
[Network] OSI 7계층 (0) | 2022.02.26 |
[Network] HTTP vs HTTPS (0) | 2022.02.24 |
[Network] HTTP 통신과 작동방식 & Socket (0) | 2022.02.24 |