[컴퓨터네트워크] Ch1. Computer Networks and the Internet

jungizz_·2023년 9월 13일

Computer Networks

목록 보기
1/7
post-thumbnail

1. What is the Internet

internet

  • TCP/IP 사용여부 상관없이 상호 연결된 네트워크 집합

the Internet

  • 물리적 실체 존재
  • Standard Internet protocol suite(TCP/IP)를 사용하는 전 세계적으로 연결된 컴퓨터 네트워크

Internet: Service view

infrastructure that provides services to applications

  • 애플리케이션에 서비스를 제공하는 인프라
  • 인터넷은 신기술이 도입되어도 구 기술을 배제하지 않고 연동시키면서 작동
  • 공유하는 자원과 장비 등이 존재하며, 신기술은 별개의 기술이라고 생각하면 안됨
  • Web, VoIP(음성통화), email, games, e-commerce, social nets, …

provides programming interface to apps

  • 애플리케이션에 프로그래밍 인터페이스 제공
  • 프로그램을 보내고 받는 것이 인터넷에 "연결"되도록 하는 훅 제공 -> "Socket"
  • 우편과 비슷한 서비스 옵션 제공

Internet Structure

General Network Reference Model

  1. Network edge
    • Host(clients and servers)
    • 겉에 있는 휴대폰, 어플, 노트북 등등
  2. Home/Enterprise Network
    • home: 공유기는 라우터와 연결되어있고, 이 라우터를 통해 core 네트워크에 연결
    • enterprise: 동시 사용자가 많아서 home보다 고성능 라우터 사용 (but 요새는 home도 이정도 함)
  3. Access network
    • 네트워크에 코어에 접근할 수 있도록 도와주는 네트워크
    • 유/무선의 연결 방법
    • first router 또는 edge router이라고도 한다.
  4. Core network
    - 엣지의 장치들이 보내는 신호를 보내주는 Router 존재

Network of Networks

  • Core 네트워크의 라우터들은 각 지역/나라/학교 마다의 ISP(Internet service providers)로 연결되어있다. (복잡한 구조)
  • 각 국가, 지역마다 여러개의 ISP가 존재하며, ISP끼리 물리적으로 연결되기도하고, IXP(Internet exchange point)로 연결되기도 한다.
  • 소규모 지역들간의 연결도 존재 (regional net)
  • 구글, 넷플 등의 자페 서버(네트워크)도 제공 (Content provider network)

Interconnection of ISPs

  • ISP는 인터넷에 접근하고 사용할 수 있도록하는 서비스를 제공해주는 조직
  • ISP간에는 다양한 형태의 상호 연결이 존재 -> 다단계로 연결되어 전 세계적으로 인터넷 연결 및 정보,데이터 교환하게 함
  • Tier1 ISP: 국가기관망 또는 대형통신사(KT, SKT)

2. Definition of Protocol

Protocol

  • 둘 이상의 객체가 상호 간에 합의한 무언가
  • 네트워크의 입장에서: 서로 통신을 하기 위해서 합의한 사항들(What, How, When?)
    -> 각 장치들로 건너가며 신호가 전달될 때, 전달되는 방법
    -> 통신에 대한 규칙 집합

3 key elements of protocol

  1. Syntax: data format
    • data format - 데이터 형식이 무엇인지
    • coding - 데이터를 변환, 저장, 전송하는 방법은 무엇인지
    • signal level - 전송 시 어떤 신호 레벨이 사용되어야 하는지
  2. Semantics: actions
    • control information - 송수신할 때 어떻게 행동해야 하는지
    • error handling - 오류는 어떻게 처리하는지
  3. Timing: order
    • sequencing - 송수신되는 메세지들의 순서
    • speed matching - 송수신 속도 조절

3. TCP/IP Protocol Stack

  • 프로토콜은 계층(Layer)로 구성

Example of layering

  • 한국인 철학자와 중국인 철학자 입장
    → 통역 필요 (통역 메커니즘은 관심 없음, 통역 서비스만 필요)
  • 통역가 입장
    → 공통언어를 영어로 설정해서 통역하는 메커니즘 (철학가인지는 관심 없음, 영어 통역사 서비스만 필요)
  • 영어 통역사 입장
    → 상대방과 전화로 소통만 되면 됨 (전화 방식이 어떻게 구성되어있는지는 관심 없음, 전화 서비스만 필요)
  • 통신사업자 입장
    → 전화 신호를 네트워크로 전달하면 됨 (전화 신호가 영어인지, 말인지 관심 없음)
  • 만약 통신비가 비싼 상태에서, 한국인이 말을 길게한다면?
    -> 돈이 많이 나옴, 한국인 철학자가 통신비가 비싼 것을 안다면, 압축해서 말할 수 있었을 것이다.
    -> 이것이 최적화!
  • 철학자들끼리의 약속, 통역사들끼리의 약속
    -> 동등한 레이어끼리의 프로토콜
  • 상위 레이어는 하위 레이어만 알 수 있으며 하위 레이어의 서비스를 이용한다.

Layed Refernce Model

  • 같은 레이어 사이에는 그 레이어에서만 통용되는 P2P 프로토콜 존재
    • 다른 레이어 간에는 통신하는 프로토콜이 존재하지 않음
  • 상하위 레이어간의 통신을 가능하게 하는 인터페이스
    • 레이어를 한 번에 두 단계 건너뛰지 못한다. 무조건 한번에 한 단계씩

Why protocol layering?

  • 네트워크들은 복잡하기 때문에 이들을 잘 관리하기 위해 필요
  • 복잡한 문제를 푸는 방법은: 해결할 수 있는 수준으로 자르고(explcit structure) 다시 뭉치기
  • 각 레이어에서 기능을 modularization하므로 자신의 기능에만 집중할 수 있게됨

Benefits

  • assists in protocol design
    • 프로토콜 설계에 도움
    • 각 레이어에서 기능을 modularization하므로 개발 및 유지관리에 용이
  • fosters competition
    • 서로 다른 제조업체나 개발자들이 각 레이어의 구현을 따르므로 경쟁을 촉진시켜 품질 향상
  • changes in one layer do not affect other layers
    • 한 레이어의 변화는 다른 레이어에 영향X
    • 각 레이어는 독립적이며 유연성과 확장성을 제공
  • provides a common language
    • 각 레이어는 특정 역할을 나타낸다고 사전에 약속된 형태이므로 "공통 언어"를 제공하며, 네트워크 설계 및 문제 해결에 대한 효율적인 의사 소통 촉진

Requirments for communication with layered model

  1. Same number of layers at two entities
    • 두 객체의 동일한 layer 수
  2. Same protocol on each peer layer
    • 각 layer간에 동일한 통신 프로토콜 사용
  3. Same interface between upper & lower layers
    • 상하위 layer간에 동일한 인터페이스

TCP/IP-Internet protocol stack

OSI Model vs TCP/IP model

  • 2종류의 layer model
    • OSI Reference model은 7layer로 고전적임
    • TCP/IP protocol suite는 5layer로 요새 많이 사용하는 모델

Packet

  • 통신을 할 떄 데이터는 패킷이라는 단위로 나눠져서 전송됨
  • 쪼개지 않으면 대역폭을 모두 점유해서 그동안 다른 기기가 회선을 사용할 수 없으므로 분할함

Five layer

  1. Application
    • supporting network applications
    • 통신하기 위해 필요한 기능을 end user에게 제공
    • FTP(파일교환), SMTP(이메일교환), HTTP(웹서비스), e-mail, P2P, ...
  2. Transport
    • process-process data transfer
    • 클라이언트와 서버 간의 애플리케이션 계층 메세지를 전송
    • 데이터 정렬, 오류 정정 등 수행 뒤 통신 확보
    • TCP (Transmission Control Protocol), UDP (User Datagram Protocol)
  3. Network
    • routing of datagrams from source to destination
    • 다른 네트워크와 통신하기 위한 경로 설정 및 논리 주소 결정
    • 데이터를 packet 단위로 쪼개고 송수신 주소 명시하고 routing(최선 경로 설정)
    • 인터넷에는 하나의 IP(Internet protocol)와 다수의 Routing Protocol 존재
  4. Link
    • data transfer between neighboring network elements
    • 네트워크 기기 간 데이터 전송 및 물리 주소 결정
      • 수신 측과 송신 측의 데이터처리 속도 차이 해결
      • 여러 장치들이 동일한 링크를 공유할 떄 충돌이 발생하지 않도록 조정
    • Ethernet, 802.11 (WiFi), ...
  5. Physical
    • bits “on the wire”
    • 물리적인 연결과 전기 신호 변환/제어
  • 데이터 송신: 상위 계층에서 하위 계층으로 (1->5)
  • 데이터 수신: 하위 계층에서 상위 계층으로 (5->1)
  • Application Layer에서 전송된 data의 프로토콜에 따라 Transport Layer에서 TCP/UDP 결정
  • 각 레이어는 아래에 있는 레이어가 어떤 기능을 하는지 알고 기능을 함(의존성)
  • 상위 레이어로부터 메시지를 수신하며 메시지의 내용은 수정하지 않음

Encapsulation/Decapsulation

  • 각 레이어는 받은 메세지에 헤더라는 추가정보를 첨부
  • 각 레이어는 해당 Header만 읽히고 다른 Data는 읽지 못함
  • 헤더에는 해당 계층에서 필요한 정보와 상위 계층 프로토콜을 나타내는 필드를 포함

Field

  1. Port Number field (Transport Layer)
    • 첫 번째 헤더(TCP/UDP 헤더)의 주요 정보는 Port number로 어느 운영체제든 같으며 바꿀 수 없다
    • TCP/UDP는 포트 번호를 사용해 상위 계층 식별
      • 송신: 메시지를 해당 포트번호로 연결
      • 수신: 세그먼트를 TCP/UDP header와 data로 분리 -> TCP/UDP header에서 port number를 추출 -> data를 상위 계층으로 전달

  2. Protocol field (Network Layer)
    • 두 번째 헤더(IP datagram 헤더)의 주요 정보는 IP주소
      • 송신: 데이터그램을를 해당 IP주소와 연결
      • 수신: 패킷을 IP header와 IP data로 분리 -> IP header에서 protocol field를 추출(TCP or UDP) -> IP data를 상위 계층으로 전달

  3. type field (Link Layer)
    • 세 번째 헤더(Frame 헤더)의 주요 정보는 MAC주소
      • 송신: 패킷을 Frame헤더(MAC주소)와 연결
      • 수신: 프레임을 frame header와 frame data로 분리 -> frame header에서 type field를 추출 -> frame data를 상위 계층으로 전달

Encapsulation

  • 데이터 송신; Application에서 처음 요청 데이터가 생성되고 하위 계층으로 전달되면서 헤더가 첨부

Decapsulation

  • 데이터 수신; 수신받은 데이터가 상위 계층으로 전달하면서 양파껍질 벗기든 헤더를 차례대로 제거
  • 데이터 전송 단위는 각 data(message), segment, packet(datagram), frame, bits이며 Network Layer에서는 packet/s로 전송되는 것이다.

데이터를 보낼 때

  1. Application: Data(Message) 생성
  2. Transport: 데이터를 받아서 필요한 정보(transport header)를 붙임 -> Segment 생성
  3. Network: 데이터를 받아서 필요한 정보(network header)를 붙임 -> Datagram 생성
  4. Link: 데이터를 받아서 필요한 정보(link header)를 붙임 -> Frame 생성
  5. Physical: 물리적인 신호로 변환하여 상대방에게 전달

데이터를 받을 때

  • 자기 계층에 해당하는 header를 처리하고, 상위 레이어로 넘기고 ...
  • Application에서 소스가 보낸 메세지를 확인하게 됨

4. Internet History

  • 1961~1972: Early packet-switching principles (패킷 교환 개발)
  • 1972~1980: Internetworking, new and proprietary nets (독점네트워크와 인터네트워킹)
  • 1980~1990: new protocols, a proliferation of networks (네트워크 확산)
  • 1990, 2000's: commercialization, the Web, new apps (인터넷 급증)
  • 2004~: increasing ubiquity to IoE

  • 인터넷은 네트워크가 아니라 삶이다. ?
  • any time, any device, any accasion, any where(location), and seamless(한결같다)

IP Layer

why ALL-IP layer?

  • IP는 network layer에서 유일한 프로토콜이기 때문
  • 다른 layer에는 많은 프로토콜이 존재함
  • network layer에서 데이터그램을 라우팅하고 전달하는데 IP 프로토콜이 사용됨

Role

  1. Integration tool between heterogeneous networks
    • 여러 다른 종류로 이루어진 네트워크 간 통합 도구를 제공
    • IP 데이터그램은 애플리케이션 및 네트워크 유형에 관계없이 end hosts간의 데이터 교환에 널리 사용됨
  2. Solutions for the integration of networks and applications
    • 네트워크와 애플리케이션의 통합을 위한 솔루션 제공
    • 다양한 네트워크지만 IP는 공통으로 가짐
  3. Unified viewpoint of the Internet to users
    • 사용자에게 인터넷에 대한 통합된 관점 제공
    • 실제 네트워크에서는 Host가 다양한 네트워크와 장치에 연결되어있지만(Subnet: 부분망; 개별네트워크)
    • 유저의 관점에서는 Host들이 하나의 큰 네트워크인 "인터넷"을 통해 연결되어있는 것처럼 보인다.

IP계층은 다양한 네트워크와 애플리케이션 간의 통합을 지원하며, 사용자에게 인터넷을 단일화된 형태로 제공하여 네트워크 통신을 단순화하고 확장성을 제공

profile
( •̀ .̫ •́ )✧

0개의 댓글