컴퓨터 네트워크 소개

이정인·2022년 2월 28일
0

컴퓨터 네트워크

목록 보기
1/11

kocw 컴퓨터네트워크 - 한양대학교 이석복 교수님의 강의를 듣고 정리한 내용입니다.
http://www.kocw.net/home/search/kemView.do?kemId=1312397

네트워크 구조

  • network edge
    • applications and hosts
  • network core
    • routers
    • network of netwoks

Network edge

  • 서버

    항상 연결되어 있으며 클라이언트의 요청을 기다린다.

    요청이 들어오면 데이터를 보내준다.

  • 클라이언트

    필요할때마다 연결하여 서버에 데이터를 요청한다.

  • TCP: Transmission Control Protocol

    • 연결 지향적
    • 신뢰성
      • 데이터가 유출되지 않고 순서대로 전달된다.
    • flow control : receiver의 능력에 맞춰서 전달된다.
    • congestion control: 네트워크 막힘 현상시 속도를 낮춰서 전송
  • UDP

    • 비연결 서비스

    • 비신뢰성

      • 데이터가 유츌될 수 있다.
    • 실시간 음성에 적합

    • 속도가 빠르다

      • Flow control, congestion control 없이 때려 넣어서

프로토콜이란?

데이터 통신을 원활하게 하기 위해 필요한 통신 규약(약속)

Network Core

라우터가 데이터를 목적지까지 전달하는데 두 가지의 데이터 전송 방식이 있다.

  • Circuit switching

    • 출발지부터 목적지까지의 edge를 미리 배정

    • 동시에 사용 가능한 인원이 적음

    • 사용자 입장에서는 데이터를 요청하지 않고 머무르는 시간이 더 길 수 있기 때문에 자원이 낭비될 수 있음

  • Packet switching

    • 사용자 데이터를 패킷 단위로 받아서 보내는데 요청 시에만 보냄
    • 각자 요청 시간이 다르므로 사용 가능한 인원에 제약이 없음
    • 사용자가 한번에 몰릴 경우 패킷 딜레이가 생길 수 있다.

패킷 딜레이 4가지 원인

  1. 패킷 검사 (nodal processing)

    • 패킷의 비트를 체크

    • Output link 선택

    개선 방법

    • 라우터 성능 개선
  1. queueing

    • 패킷 비트들이 큐에서 대기하는 시간
    • 라우터의 혼잡도에 영향

    개선 방법

    • 사용자와 사용량에 의해 결정되므로 제어 불가

    • 큐가 넘칠 경우 패킷 유실이 발생할 수 있다.

      TCP의 경우 처음부터 다시 재전송이 필요함

  2. Transmission delay

    • 패킷의 첫 비트부터 마지막 비트가 나가기까지 걸리는 총 시간

      (패킷 길이) / 링크 bandwidth

    개선 방법

    • 케이블의 bandwidth을 늘린다.
  3. Propagation delay

    • 패킷의 마지막 비트가 다음 라우터에 도착하는 시간
    • 광속이므로 케이블 길이에 비례

    개선 방법

    • 광속이므로 제어 불가

서버와 클라이언트 구조

서버

  • 항상 연결
  • 고정된 IP 주소를 가진다.

클라이언트

  • 서버와 필요할 때만 통신
  • 고정되지 않은 IP 주소를 가진다.
  • 직접 통신하지는 않음

통신 과정

같은 호스트에서 두 프로세스가 통신하기 위해서는 OS에 정의된 내부 프로세스 통신을 한다.

호스트가 다를 경우 메시지를 교환하므로써 통신을 한다.

Socket

  • 프로세스들은 소켓를 통해 메시지를 주고 받는다.
  • 소켓끼리 연결하기 위해 필요한 주소가 IP와 Port 이다.
    • IP : 호스트를 찾기 위함. 어떤 컴퓨터인지?
    • Port: 컴퓨터 안에서 어떤 프로세스인지?

application이 필요한 통신 서비스들

application layer 는 transport layer에 종속적이며, transport layer에서 application layer에 다음과 같은 것들 보장받길 원하지만 보장해주지 않음.

  • data integrity: 데이터 무결성(손실이 없음을 보장) => TCP는 이를 보장함

  • timing: 제한 시간 내에 보냄

  • throughput: 처리량

  • security: 보안

보장해주지 않는 나머지는 application 레벨에서 처리해야한다.

HTTP

web page는 object이다. HTML 파일에 기반을 둔 객체로 각각은 URL에 의해 접근 가능하다. HTTP는 이러한 파일을 주고 받는 통신이다.

  • Hypertext transfer protocol
  • Web의 application layer protocol
  • TCP 기반
    • 클라이언트가 서버에 TCP 연결을 요청한다. port 80의 소켓 생성
    • 서버는 TCP 연결을 수락하고 클라이언트와 연결한다.
    • HTTP 메시지를 브라우저 (client) 와 웹 서버 (server)가 주고 받는다.
    • TCP 연결을 종료 한다.
  • stateless: 클라이언트의 상태를 저장하지 않음 (cookie 사용)
  • 클라이언트
    • Web 객체들을 요청하고, 응답 받고, 보여주는 브라우저
  • 서버
    • HTTP를 사용하여 응답에 맞는 요청을 보내주는 웹 서버

HTTP connection

  • Non-persistent HTTP

    통신이 완료되면 연결 끊음

    매 http 마다 TCP 커넥션을 새로 맺음(비효율)

    응답 시간이 persistent 방식보다 더 오래 걸림

    RTT : round trip time(= 패킷 왕복 시간), 패킷을 목적지에 보내고 그 응답이 돌아오기까지의 시간

  • Persistent HTTP

    TCP 연결 재사용

Non-persistent HTTP

  1. HTTP Client는 포트 80의 IP주소에 TCP connection을 서버에 요청

  2. 해당 호스트의 HTTP 서버는 포트 80에 연결을 기다렸다가 수락 후 클라이언트에 알림

  3. 클라이언트는 HTTP request 메시지를 TCP 연결 소켓으로 보냄

    메시지에는 어떤 데이터를 원하는지 적혀 있음

  4. 서버는 request message를 받고 요청된 데이터가 포함된 reponse message를 만들고 소켓으로 보냄

  5. 서버 TCP 연결 종료

  6. 클라이언트는 응답 메시지를 받고 받은 데이터를 읽고 표시한다 (parsing, display)

  7. 반복

0개의 댓글