[HTTP_김영한] 인터넷 네트워크

혯승·2023년 1월 31일

HTTP

목록 보기
1/4
post-thumbnail

인터넷 통신

인터넷 망을 통해 메시지를 보내야 할때, 중간에 노드(서버)를 통해 안전하게 전달해야함. 이런 상황에 어떤 과정을 거쳐야 할까?


IP(인터넷 프로토콜)

IP (Internet Protocol) 란?

: 인터넷이 통하는 네트워크에서 어떤 정보를 수신하고 송신하는 통신에 대한 규약을 의미. 즉, 메시지를 보내기 위한 최소한의 규칙

클라이언트와 클라이언트의 메시지를 수신하는 자도 IP주소를 부여받음.

IP의 역할

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

IP 패킷 : 메시지를 전송 데이터에 집어넣기 전에, 출발지IP와 목적지 IP 등을 적어 데이터를 보냄

클라이언트는 출발지IP와 목적지 IP와 데이터가 담긴 패킷을 전송하면, 수신하는 서버도 데이터를 잘 수신했다고 패킷에 담아 전달.

IP 프로토콜의 한계

  • 비연결성
    : 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송.
    즉, 편지 봉투의 목적지가 불분명해도 보냄.(대상 서버가 패킷을 받을 수 있는 상태인지 몰라도 전송)

  • 비신뢰성
    : 중간에 패킷이 사라지면? 패킷이 순서대로 안오면?

패킷 전달 순서 문제 발생

  • 프로그램 구분
    : 같은 ip를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상이면?

이런 문제들을 해결해주는게 TCP!!


TCP UDP

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

cf) 데이터 통신에서는 계층을 5계층으로 나눔

프로토콜 계층

한단계 내려갈 때마다 각 계층의 패킷을 씌워 보냄.

TCP/IP

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

일반 IP 패킷과 다르게 TCP/IP 패킷은 TCP 정보가 추가됨.
(출발지 PORT, 목적지 PORT, 전송 제어, 순서, 검증 정보...)

특징

  • 연결 지항 - TCP 3way handshake(가상 연결) : 연결이 되면 보냄.
  • 데이터 전달 보증 : 메시지를 수신하지 못했다는 것을 알 수 있음.
  • 순서 보장
  • 신뢰할 수 있는 프로토콜

🤝TCP 3way handshake

: 양쪽 모두 데이터를 전송할 준비가 되었다는 것을 보장하고, 실제로 데이타 전달이 시작하기 전에 한쪽이 다른 쪽이 준비되었다는 것을 알수 있도록 함.

  1. 클라이언트가 연결 syn(연결 설정)메시지 보냄.
  2. 서버가 syn+ack(응답확인) 메시지를 통해 응답 메시지를 보냄
  3. 클라이언트가 ack 하고 응답보냄.
    서버랑 클라이언트 둘다 ack 보냄으로써 서로 신뢰(둘이 연결)
    cf) ack를 보내면서 데이터를 전송하기도 함(4번 생략)

🚨 개념적으로만 연결이 된거임, 즉 논리적 연결!
cf) 물리적 연결 : ex) 물리적으로 직접 LAN선을 연결.

  • 데이터 전달 보증

  • 순서 보장

: 각 TCP 세그먼트에 시퀀스 번호를 붙여 구현.
시퀀스 번호도 TCP 헤더에 기록되며, 수신 측은 이 시퀀스 번호를 사용해서 순서대로 조립.

UDP

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

  • 기능이 거의없음.
  • 연결지향(3way handshake), 데이터 전달보증, 순서 보장도 없음.
  • ip와 거의 같음.
  • port가 추가됨.(같은 ip로 왓을때 어떤 패킷인지 게임용 패킷, 음악용 패킷인지 구분), 체크섬정도만 추가.(메시지가 오류 없이 왔는지?)
  • tcp는 3way handshake할때 전송 속도가 오래걸림. tcp에 비해 단순하고 빠름.

PORT

: 같은 IP로 여러 서버에 접속할 때 사용, 같은 IP 내에서 프로세스 구분.
즉, 어떤 용도로 사용되는 패킷인지 포트번호로 확인


IP + PORT로 사용!

쉽게 설명하자면, IP는 목적지 서버를 찾는 것. PORT는 서버에 안에서 돌아가는 여러 애플리케이션 구분.


같은 IP를 전송하지면 서버마다 포트 번호가 다름.

✔️IP는 아파트, PORT는 몇동 몇호

포트 번호

0 ~ 65535 할당 가능

• 0 ~ 1023: 잘 알려진 포트, 사용하지 않는 것이 좋음
• FTP - 20, 21
• TELNET - 23
• HTTP - 80
• HTTPS - 443

DNS

DNS (Domain Name System) : 도메인 네임 시스템

  • 전화번호부
  • 도메인 명을 IP주소로 변환

👎IP의 단점

IP를 통해 통신하게 되면,

  • 기억하기 어려움
  • IP는 변경될 수 있음.

DNS 사용

도메인으로 먼저 서버를 찾으면 DNS 서버에서 해당 도메인의 IP주소를 찾아줌.
(IP 주소가 바뀌면 DNS 서버의 IP를 변경하면 됨)

0개의 댓글