용어
1. 패킷 : 데이터를 일정한 크기로 자른 단위로 네트워크에서 전송되는 데이터의 기본 단위
2. 컴파일 : 프로그래머가 작성한 소스코드를 바이너리 파일로 변환하는 과정
3. 프로토콜 : 서로다른 하드웨어와 운영체제 등이 서로 통신을 하기위해 필요한 규칙
TCP / IP
- TCP/IP(Transmission Control Protocol/Internet Protocol)는 데이터가 의도된 목적지에 닿을 수 있도록 보장해주는 통신 규약 또는 통신 언어
- 인터넷 통신의 대부분은 패킷통신으로 이루어져 있고 그 패킷 통신 규약 중 하나가 TCP/IP (TCP와 IP라는 두가지 프로토콜을 일컫는 말)
- 기본적으로 TCP / IP를 사용하면 한 컴퓨터가 데이터 패킷을 컴파일하고 올바른 위치로 전송하여 인터넷을 통해 다른 컴퓨터와 통신 할 수 있기 때문에 사용
- TCP는 데이터의 흐름을 제어할 수는 있지만 데이터가 전송되어야 할 경로에 대한 규약은 아니기 때문에 경로에 대한 규약인 IP를 함께 사용
- 인터넷 통신은 두 프로토콜을 조합해서 이루어짐
1. TCP
- 전송 제어 프로토콜 (Transmission Control Protocol)
- 최상위 계층인 TCP는 많은 양의 데이터를 가져 와서 패킷으로 컴파일 한 다음 동료 TCP 계층에서 수신하도록 전송하여 패킷을 유용한 정보 / 데이터로 바꾸는 역할 -> 다시 말해, 데이터는 네트워크 선로를 통해 전달되는 과정에서 손실되거나 순서가 뒤바뀌어서 전달될 수 있는데, TCP는 손실을 검색해내서, 이를 교정하고 순서를 재조합할수 있도록 하는 역할
- TCP는 전달받은 패킷을 재조립하고, 패킷에 손상이 있거나 손실된 패킷이 있다면 재전송을 요청하는 패킷을 전송하여 재전송 받음
- TCP는 네트워크 계층 중 전송 계층에서 사용하는 프로토콜 로서, 장치들 사이에 논리적인 접속을 성립(Establish) 하기 위하여 연결을 설정하여 신뢰성을 보장하는 연결형 서비스
- 데이터를 작게 나누지 않고 보내면 큰 데이터가 네트워크의 대역폭을 너무 많이 차지해서 다른 패킷의 흐름을 막을 수 있음 -> 그래서 작게 분할하여 전송하고 전송이 완료되면 다시 원상태로 되돌리는 작업을 TCP가 함
- 데이터의 무결성과 신뢰성을 보장하여 데이터를 안전하게 전송해주는 역할
- TCP는 IP의 상위 프로토콜
2. IP
- 인터넷 프로토콜 (Internet Protocol)
- 전 세계 수억대의 컴퓨터가 인터넷을 하기 위해서는 서로의 정체를 알 수 있도록 특별히 부여한 주소
- IP는 TCP와는 달리 데이터의 재조합이나 손실여부 확인이 불가능하며, 단지 데이터를 전달하는 역할만을 담당
- IP주소는 하드웨어 고유의 식별번호인 MAC주소와 다르게 임시적으로 다른 주체(통신사)에게 받는 주소이므로 바뀔수 있음
- IP는 4개의 숫자로 구성되며 숫자의 크기에 따라 IPv4(32비트, 각 숫자는 1바이트), IPv6(128비트, 각 숫자는 4바이트)로 나뉨
- 일반적으로 IPv4는 10진수로 표현하며 각 자리는 .으로 구분하고, IPv6는 각 자리를 4자리 16진수로 표현하며 각 자리는 :로 구분
ex) IPv4 → 192.168.1.2 / IPv6 → 2001:0000:0000:3f5c
- 패킷들이 가장 효율적인 방법으로 최종 목적지에 전달될 수 있도록 하는 역할
3. TCP / IP의 4계층
TCP / IP가 많이 사용되면서 OSI 7계층을 더욱 추상화한 TCP / IP 4계층 개념 등장
- 1계층 : 네트워크 액세스 계층(Network Access Layer)
- OSI 7계층의 물리계층과 데이터 링크 계층에 해당
- TCP/IP 패킷을 네트워크 매체로 전달하는 것과 네트워크 매체에서 TCP/IP 패킷을 받아들이는 과정을 담당
- 에러 검출 기능(Detecting errors), 패킷의 프레임화(Fraimg packets)
- 네트워크 접근 방법, 프레임 포맷, 매체에 대해 독립적으로 동작하도록 설계.
- 물리적인 주소로 MAC을 사용
- LAN, 패킷망, 등에 사용됨
- 2계층 : 인터넷 계층(Internet Layer)
- OSI 7계층의 네트워크 계층에 해당
- 어드레싱(addressing), 패키징(packaging), 라우팅(routing) 기능을 제공
- 네트워크상 최종 목적지까지 정확하게 연결되도록 연결성을 제공하게 됨.
- 프로토콜 종류 – IP, ARP, RARP
- 3계층 : 전송 계층(Transport Layer)
- OSI 7계층의 전송 계층에 해당
- 애플리케이션 계층의 세션과 데이터그램(datagram) 통신서비스 제공
- 통신 노드 간의 연결을 제어하고, 신뢰성 있는 데이터 전송을 담당한다.
- 프로토콜 종류 – TCP, UDP
- 4계층 : 4계층 응용 계층(Application Layer)
- OSI 7계층의 세션 계층, 표현 계층, 응용 계층에 해당한다.
- 프로그램(브라우저)가 직접 인터액트하는 레이어. 데이터를 처음으로 받는곳
- 다른 계층의 서비스에 접근할 수 있게 하는 애플리케이션을 제공
- 애플리케이션들이 데이터를 교환하기 위해 사용하는 프로토콜을 정의
- HTTP, SMTP등의 프로토콜을 가진다.
- TCP/UDP 기반의 응용 프로그램을 구현할 때 사용한다.
- 프로토콜 종류 – FTP, HTTP, SSH
추가 공부할 내용
- TCP의 연결과정(connect) = 3-way HandkShake
- TCP의 연결해제과정(disconnect) = 4-way HandkShake
- OSI 7계층
- TCP와 UDP의 차이점