본문 바로가기
728x90

Quality control (Univ. Study)/Computer Network27

Network Layer Network Layer 네트워크 계층은 세번째 계층으로 전송중인 호스트로부터 수신 호스트까지의 transport 세그먼트를 다룬다. 송신 측에서는 transport 세그먼트를 데이터그램으로 캡슐화한다. 수신 측에서는 transport 세그먼트를 전송 계층으로 전달한다. 모든 호스트와 라우터에는 네트워크 계층 프로토콜이 있다. 라우터는 그것을 통과하는 모든 IP 데이터그램의 헤더 필드를 검사한다. Forwarding/Routing 네트워크 계층의 핵심적인 두 function은 forwarding과 routing이다. 라우팅(routing)은 컴퓨터 네트워크에서 데이터 패킷이 소스에서 목적지까지 통과해야 하는 경로를 결정하는 과정이다. 효과적이고 효율적으로 패킷을 목적지까지 전달하기 위해 routing 알.. 2023. 10. 27.
TCP Overview TCP의 전체적인 특징에 대해서 살펴보면 아래와 같다. point-to-point: 하나의 송신자와 하나의 수신자가 있다. reliable, in-order byte steam: 메시지 경계가 없다. 이는 TCP가 데이터를 연속된 바이트 스트림으로 전송하며, 개별 메시지 구분 없이 데이터를 순서대로 전송한다는 것을 의미한다. pipelined: TCP의 혼잡 제어와 흐름 제어는 윈도우 크기를 설정한다. 이 윈도우 크기는 얼마나 많은 데이터를 한 번에 전송할 수 있는지를 결정하며, 네트워크의 혼잡 상태에 따라 동적으로 조절된다. full duplex data: 양방향 데이터 흐름이 동일한 연결에서 이루어진다. 즉, 송신자와 수신자가 동시에 데이터를 전송하고 받을 수 있습니다. MSS는 최대.. 2023. 10. 12.
Pipelined protocols Performance of RDT 3.0 RDT 3.0이 정확하게 작동하는 것은 확인이 되었다. 그러나 그 성능은 비현실적으로 너무 안좋다. 그 원인은 'stop-and-wait' 알고리즘에 있다. 지금까지의 Transport 알고리즘은 전부 sender가 packet을 보내고 receiver에게 답이 올때까지 기다려야하고 receiver도 마찬가지이다. 이게 얼마나 비효율적인지 살펴보자. 예를들어 1Gbps link가 있고 15ms propagation delay가 디폴트로 있다고 할때 8000bit packet을 보내는 과정을 보면 transmission delay는 L/R 즉 8000/1,000,000,000=8microsecs이다. 이때 sender의 utilization 즉 망 이용율을 보면 0.. 2023. 10. 10.
Reliable data transfer design Principle of Reliable data transfer Reliable한 데이터 전송 method 분야는 application, transport, link layer에서 전부 주요한 내용으로 networking 분야에서는 언제나 top-10 list에 들어갈 정도로 중요한 내용이다. 이전에 다뤘듯 transport layer는 unreliable한 하위 network channel에서 전송된 데이터를 reliable한 데이터를 요구하는 application layer에게 정리해서 전달해주어야한다. 간단하게 함수를 정리한다면 아래와 같을 수 있겠다. 이제 FSM을 이용하여 step 별로 transfer protocol을 업그레이드 해볼 텐데 FSM은 Fine State Machine 즉, 유한 .. 2023. 10. 6.
Transport-layer services Transport services and protocols 대부분의 Application layer는 reliable한 연결을 요구하지만 network, data link, physical layer는 unreliable한 network service를 제공한다. 따라서 필요에 따라 Transport layer에서 unreliable한 데이터를 reliable하도록 관리를 해주는 역할을 해야한다. Internet Transport layer protocol로는 크게 reliable한 in-order delivery를 해주는 TCP와 unreliable하고 unordered delivery를 하는 UDP가 있다. Multiplexing/Demultiplexing Sender에서 여러 개의 입력 신호 또는 .. 2023. 10. 5.
컴퓨터 네트워크 문제(2) 2023. 10. 1.
P2P(2) Bit Torrent File 생성 A.Torrent는 비트토렌트 프로토콜을 사용하여 배포되는 파일의 메타데이터를 포함하는 파일이다. 아래와 같이 bit torrent file을 생성하고 받는데 이용된다. Client가 어떤 file을 받고 싶으면 tracker server에 요청을 하면 해당 file을 갖고있는 peer의 list를 전송해준다. 해당 list를 참고하여 peer들에게 file을 요청하여 download를 하는 것이다. 이때 모든 piece를 갖고 있는 peer를 seeder, 일부 piece를 갖고 있는 peer를 leecher라고 부른다. Torrent Algorithm File distribution time 아래의 상황에서 N개의 peer가 있다고 할때 client-server구조.. 2023. 9. 27.
P2P(1) P2P Pure P2P architecture는 순수하게 peer-to-peer 즉, 고객과 고객간에 직접적으로 communicating하는 것을 의미한다. always-on server가 존재하지 않고 따라서 well-known port도 존재하지 않는다. peer들은 즉각적으로 연결되고 지속적으로 IP address가 변화한다. Napster P2P network의 대표적인 network인 "Napster"의 original design에서 peer들은 서로의 IP address를 갖고 있지 않아서 서로의 위치를 알고있는 centralized directory가 필요하다. Bob가 Alice에게 예시를 통해 살펴보자. - Alice는 그녀의 노트북 컴퓨터에서 P2P 클라이언트 어플리케이션을 실행한다... 2023. 9. 22.
DNS DNS DNS는 domain name system의 줄임말로 domain name을 받아서 IP를 찾아서 연결해주는 system이다. 또한 실제 이름을 사람들에게 친숙한 별칭(canonical, alias names)으로 매핑해주는 host aliasing 역할을 한다. ilyjt0421sh@gmail.com과 같은 메일 주소가 있을 때 '@'라는 문자가 나오면 mail로 인식을 하는 mail server aliasing 역할도 맡는다. Distributed database DNS는 중앙에서 관리하지 않고 distributed database를 이용한다. 예를들어 multinet.inha.ac.kr이라는 주소가 있다면 kr은 한국, ac는 한국에 포함된 academic 즉 교육기관, inha는 교육기관에.. 2023. 9. 20.
728x90