본문 바로가기

back-end/cs

네트워크 기초/ 프로토콜 + API + URL/URI + IP/Port + Domain/DNS

프로토콜

프로토콜 Protocol

서로 다른 시스템이나 기기들 간의 데이터 교환을 원활히 하기 위해 표준화된 통신 규약

 

인터넷 프로토콜 IP; Internet Protocol

인터넷을 통한 데이터의 통신과 교환을 관리하는 규약을 말한다. 데이터를 주고받기 위해서는 송신자와 수신자 모두 같은 프로토콜을 사용해야 한다.

우리가 웹 사이트에 접속하거나 다른 장치와 데이터를 교환하는 과정은 모두 인터넷 프로토콜에 의해 관리된다.

 

인터넷 프로토콜의 작동

인터넷 및 다른 데이터 네트워크들은 데이터를 패킷packet이라고 하는 작은 조각으로 나누어 관리한다.

두 네트워크 장치에서 보내진 데이터는 기본 하드웨어와 소프트웨어에 의해 더 작은 패킷으로 나누어진다.

따라서, 네트워크 프로토콜은 데이터 패킷이 어떻게 구성되어야 하는지에 대한 규칙을 정의하는 것이라고 볼 수 있다.

즉 데이터 패킷은 네트워크가 지원하는 프로토콜에 따라 specific한 방식으로 구성되어야 한다.

 

흐름 제어 flow control

만약 송신측의 데이터 전송 속도가 10 Mbps이고 수신 측의 수신 속도가 5 Mbps라면 데이터의 수신 속도가 전송 속도보다 느리므로 전송 중에 데이터가 일부 손실될 수 있다. 이것을 방지하기 위해 수신 측에서 송신 측에 전송 속도를 조절하도록 speed mismatch를 알린다.

 

접근 제어 access control

만약 접근 제어를 하지 않는다면, 많은 컴퓨터가 동일한 링크로 동시에 데이터를 보내는 경우 전송될 데이터가 충돌하게 된다. 따라서  데이터의 손상 및 손실을 막기 위해 특정 시간에(at at particular instant of time) 어떤 노드가 링크에 접근할지를 결정하는 접근 제어가 필요하다.

 


API; Application Programming Interface

통신 프로토콜과 서브루틴의 모음으로, 다양한 프로그램 간의 통신을 위해 사용된다. API를 이용하면 프로그램을 더 쉽고 간단하게 만들 수 있다.

즉, 필요한 도구와 기능을 제공함으로써, 두 프로그램이나 애플리케이션이 서로 통신할 수 있도록 돕는다.

user에게 request를 받아 service provider에게 전달하고, 다시 service provider로부터 생성된 결과를 user에게 전달한다.

 


URI와 URL

URL; Uniform Resource Locator

네트워크 상에서 웹 페이지, 이미지, 동영상 등의 파일이 위치한 정보를 나타낸다.

 

URL 구성 요소

  • scheme: 통신 방식(프로토콜)을 결정한다
  • hosts: 웹 서버의 이름이나 도메인, IP를 사용해 주소를 나타낸다
  • url-path: 웹 서버에서 지정한 루트 디렉터리부터 시작해 웹 페이지, 이미지, 동영상 등이 위치한 경로와 파일명을 나타낸다

 

URI; Uniform Resource Identifier

(일반적으로) URL의 구성요소인 scheme, host, url-path에 더해 query, bookmark를 포함한다.

 

URI 구성 요소

  • URL
  • query
  • bookmark

IP와 Port

IP address; Internet Protocol address

인터넷상에서 사용하는 주소 체계를 말한다. 인터넷에 연결된 각 장치에는 고유 식별을 위해 IP 주소가 할당된다. 

따라서 IP 주소는 네트워크에서 특정 인터페이스를 고유하게 식별하는 unique number 또는 numerical representaion이다.

 

용도가 정해진 IP 주소

  • localhost / 127,0,0,1 : 현재 사용중인 로컬 PC
  • 0.0.0.0 / 255.255.255.255 : broadcast address, 로컬 네트워크에 접속된 모든 장치와 소통하는 주소
    • 서버에서 접근 가능 IP 주소를 broadcast address로 지정하면 모든 기기에서 서버에 접근 가능

 

IPv4와 IPv6 비교

  IPv4 IPv6
주소 길이 32bit 128bit
표시 방법 8 비트씩 4부분으로 나누어진 10진수
(e.g. 210.220.163.82)
16 비트씩 8 부분으로 나뉜 16진수
(e.g. 2001:0db8:0000:0000:0000:ff00:0042:7879)
주소 개수 약 43억 개 3.4*10^36
헤더 크기 가변 고정
보안 기능 IPSec 프로토콜 별도 설치 확장 기능에서 기본 제공

Port

컴퓨터 네트워킹에서 메시지의 발신자와 수신자를 식별하는 데 사용되는 주소 정보의 일부를 말한다. 즉, IP 주소가 가리키는 PC에 접속할 수 있는 통로를 의미한다. incoming traffic이 어떤 프로토콜을 가리키고 있는지 알아내야 하기 때문에 이미 사용 중인 포트 번호는 사용할 수 없다. 16 비트로 표기되며 2^16개의 포트 번호를 가질 수 있다.

 

Well-Known Port Number (0~1023)

  • 22:SSH
  • 80: HTTP
  • 443: HTTPS
  • 123: NTP
  • 67, 68: DHCP
  • ...

잘 알려진 포트 번호의 경우 URI에 명시하지 않아도 되지만, 잘 알려지지 않은 포트 번호를 사용하는 경우 반드시 URI에 포함해야 한다.

 

IP address와 Port Number

IP address Port Number
네트워크에서 host를 식별 시스템에서 processes/service를 식별
IPv4=32비트 / IPv6=128비트 16비트
address of the layer-3 IP protocols address of the layer-4 protocals
시스템/네트워크 관리자가 제공 운영체제의 kernel에서 제공
ipconfig : IP 주소를 찾는다 netstat : 사용 가능한 TCP 포트를 포함한 네트워크 통계를 찾는다

 


도메인 Domain

웹 브라우저를 통해 사이트에 진입할 때, IP 주소를 대신해 사용하는 주소.(e.g. tistory.com, naver.com, google.com, ....)

터미널에서 nslookup 명령어를 통해 도메인의 IP 주소를 확인할 수 있다.

 

 

DNS; Domain Name System

호스트의 도메인 이름을 IP 주소로 변환하거나 반대로 IP 주소를 도메인 이름으로 변환할 수 있도록 개발된 데이터베이스 시스템을 말한다.

 

네트워크 상의 모든 PC는 IP 주소를 가지지만 모두가 도메인을 갖지는 않는다. 도메인 이름으로 웹 사이트에 접속하기 위해서는 도메인 이름과 매칭 된 IP 주소를 찾아야 한다. 이때 DNS에서 IP 주소를 찾고, IP 주소에 해당하는 웹 서버로 요청을 전달해 클라이언트와 서버가 통신하도록 한다.


 

 

 

ref.

더보기

'back-end > cs' 카테고리의 다른 글

네트워크 간단 개념 cheat sheet  (0) 2022.06.21
네트워크/ HTTP Messages  (0) 2022.06.08
네트워크/ 1-Tier, 2-Tier, 3-Tier Architecture  (0) 2022.06.07