반응형
SMALL

Computer Science 91

[컴네/CN] 인터넷 잡학

인터넷 보안 인터넷 역사 인터넷은 미국 국방부 지원 연구 목적으로 일부가 고장나도 동작하는 네트워크가 시초이다. 당시 보안 고려사항은 없었다. • 1970년대: Alohanet, Internet model, Ethernet, ARPANET • 1980년대: TCP/IP, SMTP, DNS, FTP, TCP congestion control 보안 사고 • 1988년 Morris Worm: 코넬대 대학원생이 유닉스 취약점 이용하여 6000대 유닉스 감염시켰다. • R. Morris: 현재 MIT 컴퓨터공학 교수 세계 • 1988: Morris Worm • 2001: Code Red Worm • 2002: Sapphire Worm 국내 • 2003년 1월: DNS 서버 공격 1∙25 인터넷 대란 (Slamme..

[컴네/CN] 네트워크 레이어의 라우터 큐

라우터 구조 라우터는 길을 찾는 장치이다. 외부에서 들어온 패킷에 대해 어디로 가면 되는지 길을 찾아주는 역할을 한다. 라우터는 공유기와 같다고 생각하면 된다. 공유기에는 네트워크 카드를 여러 개 보유하고 있는데, 보통 4개를 가지며 무선도 있다. 이러한 라우터는 컴퓨터 구조와 동일하다. 위 사진은 라우터의 구조로 high-speed switching fabric은 라우터의 특별한 하드웨어로 cpu에서의 버스와 같은 역할을 해준다. 따라서 컴퓨터의 버스는 라우터의 역할을 할 수 있는 것이다. 스마트폰에서도 라우팅 기능을 사용하고 있으며 5G, LTE 등의 인터페이스와 와이파이 인터페이스 사이의 패킷을 전달한다. IP 라우팅과 포워딩(Routing, Forwarding) - Routing: 길 찾기 기능 ..

[컴네/CN] Network계층의 IP

Network 계층 네트워크 계층은 OSI 계층의 세 번째 계층으로 아래와 같은 일을 수행한다. - IP 패킷 송수신 - IP 패킷 전달: 라우터의 패킷 포워딩 - IP 주소와 IP에 대한 경로 찾기 IP packet IP 패킷은 아래와 같은 과정을 통해 생성된다. 1. 웹 브라우저 클릭 2. 클릭에 대한 내용을 HTTP 메시지로 만들기 3. HTTP 메시지 TCP 세그먼트로 만들기 4. TCP 세그먼트를 IP 패킷으로 만들기 (encapsulation) 5. IP 패킷을 이더넷 프레임으로 만들기 6. 이더넷 프레임을 0,1 비트로 만들어서 보내기 7. 비트를 아날로그 신호로 보내기 네트워크 계층에서 수행하는 일은 위의 사진과 같다. - Path-selection algorithm 라우터의 SW에 구현되..

[컴네/CN] 혼잡제어

혼잡 제어 개요 혼잡이란 네트워크가 제어할 수 없는 범위 이상의 소스가 전송되는 경우를 말한다. (이때, 네트워크는 링크, 공유기, 라우터 버퍼 등을 다 포함한다.) 따라서, 혼잡이 발생한 경우 아래와 같은 증상이 나타난다. 1. long delay: 라우터의 버퍼에 해당 패킷이 오래 머물러 발생하는 딜레이 2. packet loss: 라우터의 버퍼가 가득 찬 경우 overflow가 되어 더 이상 수용하지 못 하면 패깃이 손실된다. 따라서 우리는 이러한 혼잡 현상을 제어해야 한다. 이때 우리는 flow control과 혼동할 수 있는데, flow control은 수신자에 대한 속도 제한으로, 수신자의 상태만 보고 판단한다. 즉, 네트워크를 고려하는 혼잡 제어와 다른 개념이다. 혼잡의 이유와 비용 아래 시..

[컴네/CN] Socket Programming

네트워크 프로그래밍 운영체제의 프로세스 간 통신을 위한 방식으로 IPC(inter-process communication) 방식을 사용하여 여러 개의 프로세스간 통신이 가능하다. (통신은 프로세스임) 분산으로 각 프로세스가 나뉘어져 있는 경우 별도의 운영체제에서 소켓에 대한 api를 제공한다. 이때, 네트워크에 존재하는 클라이언트와 서버가 통신하기 위한 도구가 소켓이다. 이러한 소켓은 C, C++에서 구조체를 통해 제공하며, bind(), listen(), accept() 함수 등을 이용하여 소켓 통신하는 응용 프로그램을 제작할 수 있다. 운영체제는 C나 C++로 제작되어 있기 때문에 전통적으로는 C 계열의 언어를 이용하여 소켓 프로그래밍을 진행하였다. 하지만, 최근에는 응용 개발 시 순수 소켓을 사용하..

[컴네/CN] TCP

TCP 1. TCP는 full duplex data 전송이 가능한 연결이다. 즉, 서버와 클라이언트가 연결하여 서로 소통이 가능한 양방향 소통으로 동일 연결에서 양방향으로 데이터를 전송한다. MSS는 maximum segment size로 데이터 전송 시 사용되는 최대 segment의 크기를 말한다. 이 MSS는 이더넷의 프레임 크기에 의해 결정된다. (TCP는 바이트 단위로 전송되지만 이러한 바이트를 모아 segment 단위로 전송한다.) 2. connection-oriented(연결 지향)적이다. TCP는 연결 지향적이고, 연결을 생성하기 위해 3-way handshake 과정을 필요로 한다. 이때, 3번의 메세지 교환이 필요하므로 3-way handshake라고 불린다. 3. flow control..

[컴네/CN] 비동기 프로그래밍

Blocking vs. Non-blocking Blocking 프로세스가 시스템을 호출하고 나서 결과가 반환되기까지 다음 처리로 넘어가지 않는 상태. 즉, block이 된 상태를 말한다. Non-blocking 시스템을 호출한 직후에 프로그램으로 제어가 돌아와 시스템 호출의 종료를 기다리지 않고 다음 처리로 넘어갈 수 있다. I/O(입출력)가 길어지는 경우 블로킹이면 대기시간이 길어지기 떄문에 논블로킹 사용한다. 좌측 코드는 서버, 우측 코드는 클라이언트의 코드이다. 서버 코드에서는 소켓을 바인딩하고, while문을 통해 accept(연결)를 기다린 후 데이터를 수신한다. 클라이언트 코드에서는 ip 주소와 포트번호를 설정하여 연결을 생성하고 "HelloWorld\n"라는 문자열을 300 * 1024 * ..

[컴네/CN] 신뢰성 있는 프로토콜

인터넷 프로토콜에는 두 가지의 종류가 있다. TCP/IP 표준과 OSI 표준 두 가지가 존재하는데, TCP/IP 표준에서 응용계층이 Application, Presentation, Session 세 가지의 계층으로 나뉜 것이 OSI 표준이다. 전송 계층 전송계층은 TCP 또는 UDP 연결을 하는 단계이다. TCP TCP 연결은 아래 네 가지 기능을 제공한다. - 신뢰성: 오류 발생 시 탐지 및 복구, 파일을 순서대로, 중복을 제거하여 전송 - 흐름제어: 수신자의 상태에 따른 전송량 조절 - 혼잡제어: 네트워크 + 수신자의 혼잡 상태(Buffer에 패킷이 많은 경우)에 따른 전송량 조절 - 연결 관리: TCP 연결을 관리함. UDP UDP는 어떠한 기능도 제공하지 않는다. TCP에서 기본적으로 제공하는 기..

[컴네/CN] 응용계층 프로토콜: FTP, SMTP

응용 계층 프로토콜 응용 게층 프로토콜은 여러 가지가 존재한다. - ftp: 파일을 전송 프로토콜 - smtp: 이메일 전송 프로토콜 - sip: 화상 회의 시 사용하는 프로토콜 - pop3: 이메일을 다운 받는 프로토콜 - imap: 이메일을 전송하는 프로토콜 - snmp: 망 관리 프로토콜 FTP 응용계층 프로토콜로 인터넷 초창기에 파일&메일을 교환하는 목적으로 사용하였기 때문에 파일을 전송할 때 자주 사용한 프로토콜이다. 하지만 최근 UI가 웹으로 바뀌면서 파일 전송도 HTTP를 통해 진행된다. SMTP, POP3/IMAP 메일을 전송하는 프로토콜이다. 이메일 서버에 전송할 때에는 SMTP를 사용하는데, 주로 서버 간 전송하는 경우를 말한다. (예를 들어 네이버 메일을 통해 구글 메일로 메일을 전송..

[컴네/CN] 응용 P2P

순수 P2P 구조 P2P는 peer to peer의 약자로 peer들끼리 직접 통신을 하는 프로토콜이다. 이때 peer는 동료라는 뜻으로 하나의 컴퓨터, 휴대폰 등을 일컫는다. 전통적으로 네트워크는 always on인 서버를 가지고 클라이언트들이 접속하는 상태이지만, p2p는 always on인 서버가 존재하지 않는다. 피어들이 직접적으로 가끔 연결되어 통신하는데, 보통 연결이 안 된 상태가 많다. 이러한 조건을 바탕으로 p2p 구조를 잘 만들기 위해서는 '파일 배포 방법'과 '정보 검색 방법'이 중요하다. Server-Client vs. P2P 1개의 서버가 N개의 피어에게 파일을 배포할 때 얼마의 시간이 걸리는지 비교해보자. - 파일의 크기: F - 서버에 파일을 업로드 하는 대역폭: us - 피어 ..

반응형
LIST