(1주차)추가내용

mangomi·2023년 1월 1일
0

네트워크 스터디

목록 보기
2/4

💡 소켓라이브러리란 ?

  • 데이터를 받기위한 실제적인 창구역할을 한다.
  • 프로세스가 데이터를 보내거나 받기 위해서는 반드시 소켓을 열어서 소켓에 데이터를 써보내거나 소켓으로부터 데이터를 읽어들여야한다.
  • 소켓은 프로토콜, IP주소, 포트넘버로 정의된다.

💡 프로토콜이란? "약속"

  • 서로 다른 기종의 컴퓨터끼리 통신하기 위해서 미리 정해놓은 규칙을 의미한다.
  • 웹은 HTTP라는 약속을 사용한 통신으로 이루어져있다.
  • 현재 가장 널리 사용되는 프로토콜은 TCP/IP로 인터넷 서비스에 사용된다. => 즉 서로 다른 기종의 컴퓨터라도 TCP/IP가 설치되어 있으면 인터넷에 연결하여 데이터 송수신이 가능하다
  • 프로토콜의 예) 케이블 규격, IP주소 지정 방법 등
  • 인터넷과 관련된 프로토콜을 모은 것TCP/IP라고 한다.

📘 인터넷 통신

  • 인터넷에서 컴퓨터 둘은 어떻게 통신할까? 클라이언트 - 인터넷 - 서버
  • 클라이언트(client) : 서버에 의뢰를 하는 웹 브라우저 등
  • 클라이언트에서 서버까지 일련의 흐름을 결정하고 있는 것을 웹에서는 HTTP라는 불리는 프로토콜이다.
  • 웹은 HTTP라는 약속을 사용한 통신으로 이루어진다.

📘 TCP/IP 4 Layer

  • TCP/IP는 현재 수많은 프로그램들이 인터넷으로 통신하는데 가장 기반이 있는 프로토콜로 인터넷과 관련된 프로토콜을 모은 것이다
  • 애플리케이션 계층, 트랜스포트 계층, 네트워크 계층, 링크계층으로 구분한다.

💡 왜 TCP/IP는 계층화되어있을까?

  • 계층화되어 있으면 사양이 변경된 경우 해당 계층만 바꾸면 된다.
  • 계층화하면 각 층에 자신이 담당하는 부분만 고려하면된다.
  • ex) 전송 계층에서 TCP -> UDP로 변경된다고 해서 웹브라우저를 설치할 필요가 없다.

🎈 애플리케이션 계층(ex : FTP, DNS, HTTP)

웹 서비스, 메일 등 서비스들을 실질적으로 사람들에게 제공한다.

🏸 DNS(Domain Name System)

  • DNS는 도메인명에서 IP주소를 조사하거나 반대로 IP주소로부터 도메인명을 조사하는 서비스를 제공하고 있다.

<IP의 단점>

  • IP는 기억하기 어렵다.
  • IP는 변경될 수 있다.
    => 도메인 명을 IP주소로 변환
[DNS 서버]
도메인명 | IP
google.com | 200.200.200.2
aaa.com | 210.210.210.3
    1. 클라이언트가 google.com 도메인명 요청
    1. DNS서버가 응답 : 200.200.200.2
    1. 클라이언트가 서버로 접속

🎈 트랜스포트 계층(ex : TCP, UDP)

애플리케이션과 인터넷 계층 사이의 데이터가 전달 될 때 중계역할을 한다.

🏸 TCP, UDP

🔍 TCP 패킷 정보

  • 출발지 PORT, 목적지 PORT, 전송제어, 순서, 검증 정보 추가

🔍 TCP특징(전송제어 프로토콜)

  • 연결지향 -TCP3 3way handshake(가상연결)
      1. SYN(클라이언트 -> 서버)
      1. SYN+ACK(서버 -> 클라이언트)
      1. ACK(클라이언트 -> 서버)
      1. 데이터 전송
  • 데이터 전달 보증
    • 나 데이터 잘 받았어라고 보내줌(?어떻게 보내는지 궁금하다!)
  • 순서 보장
      1. 패킷1, 패킷2, 패킷3 순서로 전송
      1. 패킷1, 패킷3, 패킷2 순서로 도착
      1. 패킷 2부터 다시 보내

💡 출발지 PORT, 목적지 PORT, 전송제어, 순서, 검증 정보 추가되었기 떄문에 가능함

  • 신뢰할 수 있는 프로토콜
  • 현재 대부분 TCP 사용
  • 신뢰성 있는 바이트 스트림 서비스를 제공

💡 신뢰성있는 바이트 스트림 서비스란?
신뢰성 있는 서비스 : 상대방에게 보내는 서비스
바이트 스트림 서비스 : 용량이 큰 데이터를 보내기 쉽게 TCP세그먼트라고 불리는 단위 패킷으로 작게 분해하여 관리 하는 것

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

  • IP와 기능은 같다 + PORT + 체크섬 정도만 추가
  • 애플리케이션에서 추가 작업이 필요함
  • 장점 : 웹브라우저에서 HTTP통신할때 TCP 3way handshake할때 시간이 너무 오래걸리는 문제를 해결해줌

💡 PORT : 하나의 IP로 음악 듣고, 영화 볼때 이를 구분할 때 쓰는것이다.

🏸 PORT

  • 한번에 둘 이상 연결해야하면?
  • TCP/IP 패킷정보에 출발지 PORT, 목적지 PORT가 있음
  • 같은 IP내에서 프로세스 구분
    • ex) 포트번호 : 게임 8090, 화상통화 21000, 웹브라우저 10010
  • 0~65535 할당 가능
  • 0~1023 : 잘 알려진 포트, 사용하지 않는 것이 좋음
    • FTP - 20,21
    • TELNET - 23
    • HTTP - 80
    • HTTPS - 443

🎈 네트워크 계층

네트워크 상에서 패킷의 이동을 다룬다.
장치로부터 받은 네트워크 패킷을 IP주소로 지정된 목적지로 전송하기 위해 사용되는 계층이다.

  • IP는 상대방이 제대로 받았는지 보장하지 못한다.

🏸 IP(Internet Protocol)

  • IP 인터넷 프로토콜 역할
    • 지정한 IP주소에 데이터를 전달한다
    • 패킷(Packet)이라는 통신 단위로 데이터 전달한다.

💡 패킷이란?

  • pack + bucket => 우체국에서는 화물을 적당한 덩어리로 나눠 행선지를 표시하는 꼬리표를 붙이는데, 이러한 방식을 데이터 통신에 접목한 것이다.
  • 정보를 보낼 때 특정한 형태를 맞추어 보낸다는 것이다. 컴퓨터 간에 데이터를 주고 받을 때 네트워크를 통해서 전송되는 데이터 조각이다.
  • IP 패킷 정보
    • 출발지 IP와 목적지 IP만 적은채로 보낸다.
    • 요청할 때와 응답할 때 서로 다른 곳으로 전달 될 수도 있다.(망이 복잡함)
    • IP 주소는 변경 가능하다.
  • IP프로토콜의 한계
    • 비연결성 : 패킷을 받을 대상이 없어도 패킷 전송
    • 비신뢰성 : 패킷 손실되거나 순서대로 안와도 해결X
      => 1500바이트가 넘으면 한번에 많은 데이터를 보내기 부담스러우니까 나눠서 보냄
      (1. Hello 2. World => 1.World 2. Hello), 패킷들이 중간에 다른 노드로 이동해서 순서가 변경될 수도 있다.
    • 프로그램 구분 : 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상이라면? (1개의 IP로 노래도 듣고 채팅도 한다면?)

💡 패킷이란?
전송하는 데이터의 최소단위

🎈 링크계층(혹은 네트워크 인터페이스 계층)

네트워크에 접속하는 하드웨어적인 면을 다룬다.
실질적으로 데이터를 전달하며 장치안에서 주고 받은 규칙을 정하는 계층이다.

0개의 댓글