[HTTP] 1. 인터넷 네트워크 (IP, TCP/UDP, PORT, DNS)

윤경·2021년 8월 31일
0

HTTP

목록 보기
1/8
post-thumbnail

강의링크

저번 시간까지는 [SpringBoot][4]로 스프링부트 기초에 대해 배워보았다.
이제 모든 개발자를 위한 HTTP 웹 기본 지식에 대해 배워보려고 한다. ㅎㅇㅌ !!


[1] 인터넷 통신


별 내용이 없군요,,?


[2] IP(인터넷 프로토콜)

📌 역할

  • 지정한 IP주소(IP Address)에 데이터 전달
  • 패킷(packet) 통신 단위로 데이터 전달

내가 지구 반대편 친구에게 메시지 (패킷)를 전달하기 위해서는 출발지 IP, 도착지 IP가 필요하다. ➡️ 이런식으로 !!
이때 패킷이 갈때, 올때 다른 노드를 탈 수 있다.

📌 IP 프로토콜 한계

  • 비연결성: 패킷 받을 대상이 없다면? 서비스 불능 상태라면? (에도 불구하고 패킷을 전송해버린..)
  • 비신뢰성: 중간에 패킷이 사라진다면? 패킷이 뒤죽박죽 온다면?
  • 프로그램 구분: 같은 IP를 사용하는 서버에 통신하는 애플리케이션이 두 개 이상,,?!

이 한계들을 해결하기 위한 것이 바로 TCP, UDP이다.


[3] TCP, UDP

인터넷 프로토콜 스택의 4계층

⬆️ 프로토콜 계층

⬆️ TCP/IP 패킷 정보

📌 TCP 특징

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

  • 연결지향 → TCP 3 way handshake (가상 연결)
  • 데이터 전달 보증 (메시지를 잘 받았는지 응답해줌)
  • 순서 보장 (Hello, world! → world! Hello, ❌)
  • 신뢰할 수 있는 프로토콜

현재는 대부분 TCP 사용

⬆️ (논리적으로 연결)

📌 UDP 특징

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

  • UDP는 하얀 도화지에 비유하곤 함 → 기능이 거의 없음
  • 연결지향 → TCP처럼 3 way handshake ❌
  • 데이터 전달 보증 ❌
  • 순서 보장 ❌
  • 데이터 전달 및 순서 보장이 안되지만, 단순하고 빠름

IP와 거~의 같다고 할 수 있지만 PORT와 체크섬정도가 추가.
애플리케이션에서 추가 작업이 필요.


[4] PORT

패킷 받을 대상이 없거나 서비스 불능 상태일 때 패킷을 전송하는 문제 ➡️ 해결
중간에 패킷이 사라지거나 순서가 뒤바뀌는 문제 ➡️ 해결

클라이언트가 👩🏻‍💻 게임도 하고 👩🏻‍💻 화상통화도 하고 👩🏻‍💻 웹서핑도 한다. 그런데 이때 패킷을 받았다? 누가 보낸거지 ?!

🤔: 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상일 땐 어떻게 해결하면 좋을까?

정답부터 말하자면 PORT가 해결해준다.

PORT는 같은 IP 내에서 프로세스를 구분해준다.

🤔: 그런데 서버에서 어떻게 내 port번호 를 아는거야?

애초에 패킷을 전송할 때 출발지 IP/PORT, 목적지 IP/PORT, 전송 데이터..등등 이 전달된다.

📌 참고
0~65535: 할당 가능
0~1023: 잘 알려진 포트로 사용하지 않는 것이 좋음
(FTP: 20, 21
TELNET: 23
HTTP: 80
HTTPS: 443)


[5] DNS

IP는 기억하기가 어렵다는 단점이 있다. (ex. 200.200.200.3)
그리고 IP는 변경될 수 있다.

DNS

: 도메인 네임 시스템 (Domain Name System)
전화번호부 같은 시스템이고 도메인 명을 IP 주소로 변환해준다.

도메인 명은 돈을 주고 사는거고 DNS 서버가 IP로 변환해주는 것 !


profile
개발 바보 이사 중

0개의 댓글

관련 채용 정보