본문 바로가기

back-end/cs

네트워크 간단 개념 cheat sheet

 

IP; Internet Protocol (인터넷 프로토콜)

지정한 IP 주소에 데이터를 전달한다

패킷Packet이라는 통신 단위로 데이터를 전달한다

 

IP 프로토콜의 한계

비연결성

패킷을 받을 대상이 없거나 서비스가 불능 상태이더라도 패킷을 전송한다. 즉, 대상의 상태를 알지 못한다.

 

비신뢰성

중간에 패킷이 사라지거나 패킷이 순서대로 도착하지 않더라도 알지 못한다.

 

프로그램 구분

같은 IP를 사용하는 서버에서 여러 애플리케이션을 사용하는 경우 구분할 수 없다.

 


TCP; Transmission Control Protocol (전송 제어 프로토콜)

  • 연결 지향: TCP 3 way handshake (일단 연결하고 본다)
    1. 클라이언트가 서버에 접속을 요청한다
    2. 서버가 클라이언트의 요청을 수락함과 동시에 역시 접속을 요청한다
    3. 클라이언트가 서버의 접속 요청을 수락한다 (함께 데이터를 전송하기도 한다)
    4. 데이터를 전송한다
  • 데이터 전달 보증
  • 순서 보장

→ 신뢰할 수 있는 프로토콜으로 현재 대부분 TCP를 사용한다.

 


UDP; User Datagram Protocol (사용자 데이터그램 프로토콜)

TCP의 모든 특징과 반대된다. 즉 연결을 지향하지 않고 데이터의 전달과 순서가 보장되지 않는다. 하지만 단순하고 빠르다는 장점이 있다. IP와 비슷하지만 PORT와 체크섬 정도가 추가되었다.

 


PORT

같은 IP 주소에서 여러 애플리케이션을 사용하는 경우 구분할 방법이 필요하다. 이때 PORT를 함께 사용해 구분할 수 있다.

주요 포트

  • FTP: 20, 21
  • TELENET: 23
  • HTTP: 80
  • HTTPS: 443

0~65535의 포트 번호를 할당 가능하지만 0~1023의 범위는 잘 알려진 포트들이므로 사용하지 않는 것이 좋다.


DNS; Domain Name System

IP 주소는 직관적이지 않아 기억하기 어려울 뿐만 아니라 변경될 수 있다. 때문에 이를 보완하기 위해 도메인 주소를 사용한다. DNS는 이러한 도메인 주소와 IP 주소를 서로 변환해주는 시스템이다.

 


URI; Uniform Resource Identifier

  • Uniform: 리소스를 식별하는 통일된 방식
  • Resource: URI로 식별할 수 있는 모든 것
  • Identifier: 다른 항목과 구분하는 데 필요한 정보

URL은 Locator로 리소스가 있는 위치를 지정하고 URN은 Name으로 리소스에 이름을 부여한다. 하지만 URN만으로 실제 리소스를 찾을 수 있는 방법이 보편화되지 않아 지금의 URI는 거의 URL을 의미한다고 봐도 무방하다.

 

URL의 기본 구조

scheme

http, https, ftp와 같은 프로토콜을 나타낸다. 

userinfo

URL에 사용자 정보를 포함해 인증한다. 거의 사용되지 않는다.

host

호스트 명을 나타내는 것으로 도메인 주소나 IP 주소가 해당된다.

port

접속 포트를 나타내는 것으로 일반적으로 생략된다.

path

리소스의 경로를 나타낸다.

query

쿼리 파라미터로 key=value의 형태로 나타낸다. ?로 시작하며 &로 쿼리를 연결할 수 있다.

fragment

html 내부 북마크 등에 사용된다. 서버에 전송되는 정보는 아니다.