인터넷 네트워크

최대환·2022년 5월 11일
0

네트워크

목록 보기
1/1

참고강의: 모든 개발자를 위한 HTTP 웹 기본 지식

인터넷 통신

구조

클라이언트 <-----> 인터넷망 <-----> 서버

특징

  • 인터넷밍은 매우 많은 노드가 얽혀있어 복잡하다.

IP

특징

  • 지정된 IP 주소에 데이터를 전달하는데, 패킷이라는 통신단위로 데이터를 전달한다
  • IP헤더 안에는 출발지IP, 목적지IP 등이 들어있다.
  • 캡슐화 과정에서 IP헤더와 TCP 세그먼트를 합쳐준다. 그걸 패킷이라고 한다
  • 이 패킷에 있는 목적지 IP주소를 통해 서버에 패킷을 전달할 수 있다.

IP프로토콜의 한계

  • 비연결성: 패킷이 받을 대상이 없거나 서비스 불능 상태여도 패킷을 전송한다
  • 비신뢰성: 중간에 패킷이 누락되거나, 순서가 바뀌어서 갈 수도 있다.
  • 프로그램 구분이 안됨: 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 여러개일 경우 무슨 어플리케이션에 데이터를 보내야할지 알 수 없다.

TCP,UDP

인터넷 프로토콜의 4계층

TCP 세그먼트

  • TCP 세그먼트 = 전송데이터 + TCP헤더 이다.
  • TCP 헤더에는 출발지 PORT, 목적지 PORT, 전송제어, 순서, 검증정보 등이 들어있다.

TCP 특징

  • 신뢰할 수 있는 프로토콜이다.
  • 현재는 대부분 TCP를 사용한다.
  1. 연결지향 - TCP 3 way handshake(가상연결)
  2. 데이터 전달 보증
  3. 순서 보장

TCP 3 way handshake

클라이언트 < --------------- > 서버
가 3번 왔다 갔다하면서 열결된지 확인하는거다

먼저, 클라이언트에서 SYN(연결요청)을 서버한테 보낸다.
둘째로, 서버에서 ACK(요청 수락)과 함께 SYN(연결요청) 클라이언트에게 보낸다
셋째로, 클라이언트에서 ACK(요청 수락)을 보낸다.(요새는 이과정에서 데이터도 같이 보낸다고 한다)

데이터 전달 보증


클라이언트가 서버에게 데이터를 전송하면,
서버에서 클라이언트에게 데이터를 잘 받았다고 보증한다

순서보장


클라이언트가 패킷을 보내면,
순서를 확인해서 재요청을 할 수 있다.

UDP 특징

  • 하얀 도와지에 비유를 많이한다(기능이 거의 없음. PORT와 체크섬 정도)
  • 연결지향적이지않고(3 way handshake), 데이터 전달을 보증해주지 않고, 순서를 보장해주지 않는다.
  • 단순하고 빠르다

참고
UDP checksum
체크섬(checksum)이란 네트워크를 통해서 전송된 데이터의 값이 변경되었는지(무결성)를 검사하는 값으로, 무결성을 통해서 네트워크를 통해서 수신된 데이터에 오류가 없는지 여부를 확인한다.

PORT

특징

  • IP가 아파트 이름과 같다면, PORT는 해당 아파트의 동과 호이다.
  • 아래와 같이 같은 IP내에서 프로세스를 구분해서 연결할 수 있도록 한다.

포트 번호

0 ~ 65535: 할당 가능
0 ~ 1023: 잘 알려진 포트, 사용하지 않는 것이 좋음

대표포트

FTP - 20, 21
TELNET - 23
HTTP - 80
HTTPS - 443

DNS

IP는 기억하기 어렵고, 변경될 수도 있어서 DNS를 쓴다.
DNS란 Domain Name System으로 도메인명을 IP주소로 변환하는 역할을 한다.
아래와 같이 DNS서버로 부터 IP주소를 알아내고 해당 IP주소를 이요하여 서버에 요청한다.

profile
나의 개발지식 output 공간

0개의 댓글