네트워크

Jongwon·2022년 6월 27일
0

Http 기본개념

목록 보기
1/7

해당 내용은 김영한님의 HTTP 웹 기본 지식 강의를 듣고 이해한 내용을 바탕으로 작성되었습니다.

IP

IP는 Network Layer의 프로토콜입니다. 클라이언트와 서버는 IP 주소를 통해 통신을 진행할 수 있습니다.
컴퓨터통신 전공수업에서 배운 바와 같이 IP는 제공하는 기능이 거의 없는 신뢰할 수 없는 프로토콜입니다.

  1. 비연결성
    IP를 이용한 패킷전달은 송신자와 수신자간의 연결 설정이 없이 진행됩니다. 따라서 수신측의 상태를 고려하지 않고 전송합니다.
  2. 비신뢰성
    IP는 신뢰성이 없는 전송을 합니다. 즉, 패킷이 손실될 수도 있고, 패킷이 손상될 수도 있습니다. 또한 패킷을 순서대로 전송하지 않습니다.

TCP/UDP

TCP

TCP는 신뢰할 수 있는 프로토콜로 3가지 Control을 제공해줍니다.

  • Congestion Control
  • Flow Control
  • Error Control

TCP는 IP에서는 제공하지 못했던 연결 설정을 통해 전용 연결(가상 연결)을 합니다. 따라서 둘만의 송수신 Window가 있어 수신측의 포화도를 보고 전송을 제어하고, 순서에 맞지 않게 패킷이 오더라도 다시 순서대로 정렬할 수 있습니다. 또한 ACK를 통해 패킷 손실에 대한 해결도 해줍니다.

UDP

UDP는 TCP와 달리 대부분의 기능을 제공하지 않습니다. 그렇다면 왜 UDP를 사용할까요? Real-Time Service를 요구하는 멀티미디어 등에서는 TCP에서 진행하는 여러 Control을 통해서 패킷이 전송된다면 시간 내에 데이터를 전달할 수 없습니다. 오버헤드가 크기 때문입니다. 이 때문에 UDP는 PORT 기능과 Checksum 기능만 제공하고 그 외의 기능은 제공하지 않습니다.

PORT

Port는 같은 IP 내에서 프로세스를 구분할 수 있도록 지정된 번호입니다.
0 ~ 65535까지 할당 가능하고, 그 중에서 0 ~ 2000번까지는 잘 알려진 Port번호로 사용을 권장하지 않습니다.
HTTP는 PORT 80, HTTPS는 PORT 443을 사용합니다.
Port는 localhost에서 개발해본 경험이 있다면 이미 사용해본 경험들이 모두 있습니다. 보통의 경우 웹 서버가 아니라 자신의 컴퓨터 자체에서 테스트를 해보고자 할 때 localhost:4000이라는 주소를 쳐서 나오는 사이트를 이용했을텐데, 이때 4000이 Port 4000번입니다.
강의에서는 IP 주소는 아파트 동 번호, Port번호는 호수로 이해하면 쉽다고 하였습니다.

DNS

DNS는 Domain Name System입니다. Domain Name은 쉽게 생각하면 example.com과 같은 주소라고 생각할 수 있는데, 물리 IP 주소와 1대1로 대응하며 특정 사이트에 접근하기 위해 IP 대신 사용하는 주소입니다. Host IP가 변할수도 있고, 일일히 주소를 외울수도 없기 때문에 DNS 서버를 통해 서버 내부에 저장되어있는 도메인과 IP를 매칭시켜 쉽게 Host에 접근할 수 있도록 도와줍니다.

profile
Backend Engineer

0개의 댓글