CS_ 웹과 네트워크의 기본

정윤숙·2023년 7월 13일

CS

목록 보기
1/5
post-thumbnail

📒 오늘의 공부

1. 그림으로 배우는 Http & Network

1장 웹과 네트워크의 기본에 대해 알아보자

1. HTTP

  • HTTP(HyperText Transper Protocol): 클라이언트에서 서버까지 일련의 흐름을 결정
  • 웹은 HTTP라는 약속을 사용한 통신으로 이루어져 있다.

2. TCP/IP

  • TCP/IP: 인터넷에 관련된 다양한 Protocol 집합의 총칭

  • Protocol: 컴퓨터와 네트워크 기기가 상호간에 통신하기 위한 규칙

  • TCP/IP의 4계층(Layer)

    • 애플리케이션 계층
    • 트랜스포트 계층
    • 네트워크 계층
    • 링크 계층
  • 계층화의 장점

    • 사양이 변경되었을 때 해당 계층만 바꾸면 된다.
      (💡React의 컴포넌트가 생각 났다.)
    • 해당 층에서는 상대와 상관없이 오직 자기 자신이 담당하는 부분만 고려하면 되기 때문에 설계가 편리하다.
  • 애플리케이션 계층

    • 유저에게 제공되는 애플리케이션에서 사용하는 통신의 움직임을 결정
    • 공통 애플리케이션: FTP, DNS, HTTP
  • 트랜스포트 계층

    • 애플리케이션 계층에 네트워크로 접속되어 있는 2대의 컴퓨터 사이의 데이터 흐름을 제공
    • TCP(Transmission Control Protocol),
      UDP(User Datagram Protocol) 존재
  • 네트워크(혹은 인터넷) 계층

    • 네트워크 상에서 패킷의 이동을 다룸
    • 패킷: 전송하는 데이터의 최소 단위
    • 어떠한 경로(절차)를 거쳐 상대의 컴퓨터까지 패킷을 보낼지 결정
      • 인터넷의 경우 - 상대 컴퓨터에 도달하는 동안 여러 대의 컴퓨터, 네트워크 기기를 거치는데 그러한 여러 가지 선택지 중 하나의 길을 결정하는 것이 네트워크 계층의 역할
  • 링크(혹은 데이터 링크, 네트워크 인터페이스)계층

    • 네트워크에 접속하는 하드웨어적인 면을 다룸
    • 운영체제가 하드웨어를 제어하기 때문에
      디바이스 드라이버, 네트워크 인터페이스 카드(NIC), 케이블 등의 전송매체 포함

3. TCP/IP 통신의 흐름

  • 송신측: 계층을 통과할 때마다 헤더를 추가
  • 수신측: 계층을 통과할 때마다 헤더를 삭제
  • 캡슐화: 각 계층에서 헤더로 정보를 감싸는 것

4. HTTP와 관계가 깊은 IP/TCP/DNS

  • IP(Internet Protocol)

    • 네트워크 계층
    • IP =/= IP 주소
    • 역할: 개개의 패킷을 상대방에게 전달
    • 전달하기 위한 요소
      • IP 주소: 각 노드에 부여된 주소, 변경 가능
      • MAC 주소(Media Access Control address): 각 네트워크 카드에 할당된 고유 주소, 변경 불가능
    • IP 주소는 MAC 주소와 결부됨
    • 통신은 ARP를 이용하여 MAC 주소에서 한다.
      • IP 통신은 MAC 주소에 의존해 통신
      • 여러 대의 컴퓨터와 네트워크 기기를 중계해서 상대방에게 도착하는데 그렇게 중계하는 동안 다음으로 중계할 곳의 MAC 주소를 사용하여 목적지를 찾는 것
      • 이 때 사용되는 것이 ARP(address Resolution Protocol)
    • ARP는 주소를 해결하기 위한 프로토콜 중 하나로 수신지의 IP 주소를 바탕으로 MAC 주소를 조사할 수 있다.
    • 목적지를 중계하는 도중 컴퓨터와 라우터 등의 네트워크 기기는 대략적인 목적지만을 알고 있다.
      • 화물을 보내는 사람이 택배 집배소만 알면 화물을 보낼 수 있는 것, 집배소는 어느 지역의 집배소인지만 알면 되는 것
      • 즉, 어떤 컴퓨터나 네트워크 기기도 인터넷 전체를 상세하게 파악하고 있지 못한다.
  • TCP(Transfer Control Protocol)

    • 트랜스포트 층에 해당
    • 신뢰성 있는 바이트 스트림 서비스를 제공
    • 바이트 스트림 서비스: 용량이 큰 데이터를 보내기 쉽게 TCP 세그먼트라고 불리는 단위 패킷으로 작게 분해하여 관리하는 것
    • 신뢰성 있는 서비스: 상대방에게 보내는 서비스
    • 대용량의 데이터를 보내기 쉽게 TCP 세그먼트라는 단위 패킷으로 작게 분해하여 상대에게 보내고, 정확하게 도착했는지 확인하는 역할
    • TCP 3way handshaking: 패킷을 보내고 패킷이 보내졌는지 여부를 상대에게 확인하는 방법
      • SYN, ACK 라는 TCP 플래그를 사용
        1. 송신측에서는 SYN플래그로 상대에게 접속함과 동시에 패킷을 보낸다.
        1. 수신측에서는 SYN/ACK 플래그로 송신측에 접속함과 동시에 패킷을 수신한 사실 전달
        1. 마지막으로 송신측이 ACK플래그를 보내 패킷 교환이 완료되었음을 전함
      • 이 과정에서 통신이 도중에 끊어지면 TCP는 그와 동시에 같은 수순으로 패킷을 재전송
  • DNS(Domain Name System)

    • HTTP와 같이 응용 계층 시스템에서 도메인 이름과 IP 주소 이름 확인을 제공
    • 컴퓨터는 IP 주소와는 별도로 호스트 및 도메인 이름을 붙일 수 있다. ex. www.by-zip.co.kr
    • DNS는 도메인명에서 IP 주소를 조사하거나 IP 주소로부터 도메인명을 조사하는 서비스를 제공

5. URI와 URL

  • URL(Uniform Resource Locator): 웹 브라우저 등으로 웹 페이지를 표시하기 위해 입력하는 주소

  • URI(Uniform Resource Identifier): 리소스 식별자

  • URI는 리소스를 식별하기 위해 문자열 전반을 나타내고 URL은 리소스의 장소(네트워크 상의 위치)를 나타낸다. = URL은 URI의 서브셋

  • Uniform

    • 통일(Uniformity)된 서식을 결정하는 것
    • 여러 종류의 리소스 지정 방법을 같은 맥락에서 구별없이 취급할 수 있게 한다.
    • 새로운 스키마(http:와 ftp) 도입을 용이하게 한다.
  • Resource

    • 식별 가능한 모든 것(다른 것과 구별할 수 있는 것)
      ex. 이미지, 서비스(오늘의 일기 예보) 등
    • 복수의 집합도 포함
  • Identifier

    • '식별자', 식별 가능한 것을 참조하는 오브젝트
  • URI는 스키마를 나타내는 리소스를 식별하기 위한 식별자

    • 스키마: 리소스를 얻기 위한 수단에 이름을 붙이는 방법
  • URL 포맷

    • 절대 URI 포맷

    • 자격정보(크리덴셜)

      • 옵션사항
      • 유저명과 패스워드 지정 가능
      • 서버로부터 리소스를 취득하기 위해 필요
    • 서버 주소

      • 완전 수식 형식인 URI에서는 지정 필요
      • 주소는 DNS이름(www.by-zip.co.kr), IPv4('192.168.1.1'), IPv6('[0:0:0:0:0:0:0:1]')로 지정
    • 서버 포트

      • 옵션(생략 시 디폴트 포트 사용)
      • 서버의 접속 대상이 되는 네트워크 포트 번호 지정
    • 계층적 파일 패스

      • 특정 리소스를 식별하기 위해 서버 상의 파일 패스 지정
      • UNIX 디렉토리 지정 방법과 비슷
    • 쿼리 문자열

      • 옵션
      • 파일 패스로 지정된 리소스에 임의의 파라미터를 넘겨주기 위해 사용
    • 프래그멘트 식별자

      • 옵션
      • 취득한 리소스에서 서브 리소스(도큐먼트 중간에 위치)를 가리키기 사용

참고자료

profile
프론트엔드 개발자

0개의 댓글