웹 애플리케이션
웹 애플리케이션은 다양한 동적인 응답을 웹 브라우저라는 소프트웨어를 통해 가능하게 한 애플리케이션이다.
네이티브 애플리케이션
특정 기기에 설치해서 사용하는 애플리케이션이다.
Ex) 모바일용 애플리케이션
인터네트워킹이란 여러 네트워크를 연결하는 것을 의미한다.
네트워크를 확장하는 방식은 크게 두 가지 방법이 있다.
인터네트워킹은 네트워크의 일부에서 고장이 나도 영향이 광범위하게 퍼지지 않는다는 점과 불필요한 통신이 네트워크 전체로 확산하지 않는다는 점, 개별 네트워크를 각각의 방침에 따라 관리가 가능하다는 등의 장점이 있다.
전 세계적으로 인터네트워킹하는 것이 우리가 사용하는 인터넷이다.
인터넷에 연결되어 있는 컴퓨터가 다른 여러 컴퓨터와 소통하려면 약속이 필요하다.
여기서 공통된 약속을 프로토콜이라 하며 지금은 'TCP/IP'프로토콜이 주로 사용하는 약속이다.
인터넷 통신 스위트(Internet Protocol Suite)는 인터넷에서 컴퓨터들이 서로 정보를 주고받는데 쓰이는 통신규약의 모음이다.
이 모음은 다른 컴퓨터나 다른 운영체제, 다른 회선 간의 통신이 가능하게 해준다.
인터넷이 처음 시작하던 시기에 정의되어 현재까지 표준으로 사용하고 있는 TCP(Transmission Control Protocol)와 IP(Internet Protocol)에서 가져와 TCP/IP라고 부른다.
| 계층 단위 | TCP/IP 4계층 모델 | 주요 프로토콜 | 역할 |
|---|---|---|---|
| 4층 | 응용 계층 | HTTP, DNS, FTP, ... | 애플리케이션에 맞추어 통신 |
| 3층 | 전송 계층 | TCP, UDP, ... | IP와 애플리케이션을 중개해 데이터를 확실하게 전달 |
| 2층 | 인터넷 계층 | IP, ICMP, ARP, RARP | 네트워크 주소를 기반으로 데이터를 전송 |
| 1층 | 네트워크 접근 계층 | Ethernet, wifi, ... | 컴퓨터를 물리적으로 네트워크에 연결하여 기기 간의 전송이 가능하게 함 |
TCP/IP 구조에서 컴퓨터를 식별하기 위해 사용하는 주소이다.
IP 주소에는 Private 주소와 Public 주소가 있다. LAN 네트워크 내부에서 사용되는 것이 Private IP 주소이고, Public IP 주소는 인터넷에서 사용된다.
IP는 인터넷상에서 사용하는 주소체계를 의미한다. 인터넷에 연결된 모든 PC는 IP 주소체계에 따라 네 덩이의 숫자로 구분되며, 이것은 IPv4라고 한다. IPv4는 Internet Protocol version 4의 줄임말로, IP 주소체계의 네 번째 버전을 뜻한다.
IP 주소만 가지고는 네트워크 상에서 송수신이 불가능하다. 각 네트워크 기기는 처음부터 제조사에서 할당하는 고유 시리얼인 MAC 주소를 IP 주소와 조합해야만 네트워크를 통한 통신이 가능하다.
이더넷에서는 네트워크상의 송수신 상대를 특정하고자 MAC 주소를 사용하고, TCP/IP 에서는 IP 주소를 사용하기 때문이다.
같은 LAN에 속한 기기끼리 통신할 때는 상대방의 MAC 주소를 파악하는 과정이 있다.
이때 사용하는 것이 ARP(Address Resolution Protocol)이다. MAC 주소를 파악하기 위해 네트워크 전체에 브로드캐스트를 통해 패킷을 보내고, 해당 IP를 가지고 있는 컴퓨터가 자신의 MAC 주소를 Response하게 됨으로써 통신할 수 있게 해주는 프로토콜이다.
기기끼리의 통신에는 회선 교환(Circuit Switching) 방식과 패킷 교환(Packet Switching) 방식이 있다.
IPv4 주소는 000.000.000.000 의 형식으로 되어 있다.
10진수로 표기되어 있지만, 실제론 마침표로 구분된 4개의 8비트 필드(8자리 2진수 4개)로 되어 있다.
각 8비트 필드는 IPv4 주소에서 1 바이트를 나타내고, IPv4 주소의 바이트를 나타내는 이러한 형식을 점으로 구분된 십진수 형식이라고도 한다.
IP 주소는 네트워크부와 호스트부로 나뉜다.

IPv4 주소에서 네트워크부가 어디까지인지 나타내는 것이 서브넷 마스크이다.
8자리 2진수 묶음을 옥텟이라고 부른다. IPv4 주소는 4개의 옥텟으로 이루어져 있고, 각각을 1~4옥텟이라고 부른다.
위 서브넷 마스크의 경우, 1~3까지의 옥텟을 네트워크부로 사용하는 서브넷 마스크이고, 4옥텟은 호스트부로 사용한다.

MAC 주소와 달리 IP 주소는 처음부터 주어지는 것이 아니라 할당되는 것이다.
위 그림처럼 호스트부를 변경해 가면서 IP 할당이 이루어지게 된다.
호스트부는 8자리로 이루어진 2진수이므로, 할당할 수 없는 시작(0)과 끝 숫자(255)를 제외한 번호로 할당이 가능하다.
패킷을 받을 대상이 없거나 특정한 이유로 서비스 불능 상태로 빠져도 데이터를 받을 상대의 상태 파악이 불가능하기 때문에 패킷을 그대로 전송하는 비연결성 문제가 있다.
중간에 패킷이 사라지더라도 보내는 기기 측에서는 알 수 있는 방법이 없다. 또한, 서로 다른 노드를 거쳐서 전송되는 특성상, 보내는 기기측에서 의도한 순서대로 데이터가 도착하지 않을 수 있다.
또한, 한 IP에서 여러 애플리케이션이 작동하는 경우, 특정할 수 없는 한계가 있다.
이런 한계를 극복하기 위해 TCP와 UDP가 사용된다.
TCP와 UDP는 TCP/IP 4계층 모델을 기준으로 IP 프로토콜의 계층인 인터넷 계층의 상위에서 동작한다. 전송 계층에 속하는 TCP와 UDP는 2계층에서 동작하는 IP와 4계층에서 동작하는 애플리케이션(HTTP 등)을 중개하는 역할을 한다.
TCP는 통신 신회성을 높이는 기능이 구현되어 있다. UDP에는 신뢰성을 높이는 기능이 없는 대신 보다 높은 속도와 효율성을 제공한다.
이런 이유로, 데이터의 신뢰성을 필요로하는 애플리케이션은 TCP, 빠른 속도나 실시간 통신이 중요한 애플리케이션의 경우 UDP로 구분해서 사용한다.
특히 웹애플리케이션에서 많이 사용하는 HTTP의 경우 모든 데이터를 제대로 송수신이 가능해야 하는 특성상 TCP를 사용한다.
| 프로토콜 종류 | TCP(Transmission Control Protocol) | UDP(User Datagram Protocol) |
|---|---|---|
| 연결 방싱 | 연결형 서비스 | 비연결형 서비스 |
| 패킷 교환 방식 | 가상 회선 방식 | 데이터그램 방식 |
| 전송 순서 | 전송 순서 보장 | 전송 순서가 바뀔 수 있음 |
| 수신 여부 확인 | 수신 여부를 확인함 | 수신 여부를 확인하지 않음 |
| 통신 방식 | 1:1 통신 | 1:1 또는 1:N 또는 N:N 통신 |
| 신뢰성 | 높음 | 낮음 |
| 속도 | 느림 | 빠름 |

TCP/IP의 개념은 1970년대 미 국방부가 미국과 영국, 프랑스 대학들의 연구자들과 협력하여 개발했다.
TCP 3-way handshake 는 양 끝단의(end to end) 기기의 신뢰성 있는 데이터 통신을 위해 TCP 방식이 연결을 설정하는 방식으로 세 단계를 통해 연결을 설정한다.