ComputerNetwork
49 posts
ComputerNetwork
Assignments
June 19, 2023
홈페이지 개발 방식 및 후기, 컴퓨터 네트워크 과목을 마치며

홈페이지 개발일지 뭘로 만들건데? WIX? SITE123? 컴퓨터 네트워크 강좌 과제의 일환으로 공부 내용을 정리하여 직접 만든 홈페이지에 게시해야했습니다. 교수님께선 WIX 및 기타 플랫폼을 이용하시라 하셨지만 그래도 개발자인데 직접 바닥부터 웹사이트를 빌드해서 배포까지 해보자는 생각으로 기존에 알고있던 JS, React지식을 활용하여 프론트 부분을 구성하고 백엔드 쪽은 Firebase를 사용하든지 Spring으로 직접하든지 하도록 하자! 하고 바로 웹사이트 개발을 시작했습니다. 마크다운 형식(.md)를 재활용할 수 없을까? 저는 평소에 강의자료 등을 이라는 워크스페이스를 통해 요약 및 관리하고 있는데, 여기에 정리해 둔 자료들을 놔두고 다시 웹사이트에 처음부터 적는것이 번거로울 것 같았습니다. 그래서 일일히 html문서로 게시글을 새로 올리는 방식 대신 .md 파일을 이식하여 통합관리하는 정적인 사이트를 만들기로 결정했습니다. 이와 딱 맞는 서비스를 제공해주는 플랫폼이 …

ComputerNetwork
June 15, 2023
운영 보안 - 방화벽과 침입 탐지 시스템

운영 보안: 방화벽과 침입 탐지 시스템 방화벽 은 전체 인터넷으로부터 기관의 내부 네트워크를 분리시킨 하드웨어와 소프트웨어의 조합으로, 어떤 패킷은 통과가 허용되나 어떤 패킷은 차단된다. 네트워크 관리자가 해당 네트워크에 대한 트래픽 출입을 관리하여 접속을 제어한다. 방화벽의 목표 외부와 내부를 오가는 모든 트래픽은 방화벽을 거친다. 로컬 보안 정책에 정의된 대로 승인된 트래픽만이 통과가 허용된다. 방화벽 자체가 침입 시도에 안전해야 한다. 전통적인 패킷 필터 기관은 일반적으로 내부의 네트워크를 ISP에 연결하는 게이트웨이 라우터를 갖는다. 외부와 내부를 오가는 모든 트래픽은이 라우터를 지나야만 하고, 이 라우터에서 패킷 필터링이 일어난다. 필터링 결정의 근거 IP 출발지 또는 목적지 주소 불행히 출발지 주소를 위장한 데이터그램을 막을 수 없다. IP 데이터그램 내의 프로토콜 타입 : TCP,UDP OSPF 등 TCP 또는 UDP 출발지와 목적지 포트 TCP 플래그 비트 : SY…

ComputerNetwork
June 15, 2023
무선랜과 4G, 5G 셀룰러 네트워크 보안

무선 랜과 4G/5g 셀룰러 네트워크 보안 802.11(와이파이) 무선 랜의 인증키와 키 합의 802.11 네트워크에서 다루어야 할 핵심적인 보안 관심사 상호인증 이동 장치가 AP에 접속하여 데이터그램을 외부에 전송하기 전에, 네트워크는 접속하는 이동 장치의 신원을 확인하고, 그 장치의 접속 권한을 점검하기 위해 장치를 인증하기를 원한다. 이동장치의 경우도 접속하는 네트워크가 진짜 접속을 원하는 네트워크가 맞는지 인증하기를 원한다. 이런 양방향 인증을 상호 인증이라고 한다. 암호화 802.11 프레임은 무선 채널을 통해 교환되기 때문에, 이동 장치와 AP 간에 교환되는 사용자 레벨 데이터를 지니고 있는 링크 레벨 프레임의 암호화가 중요하다. 높은 속도를 요해 대칭키 암호화가 사용된다. 상호 인증과 암호화 키 생성 및 사용 절차 발견 AP는 자신의 존재와 함께 이동 장치에게 제공될 수 있는 인증과 암호화 형식을 알린다. 이동 장치는 원하는 인증과 암호화 형식을 요청한다. 상호 인증…

ComputerNetwork
June 14, 2023
IPsec과 가상 사설 네트워크

네트워크 계층 보안: IPsec과 가상 사설 네트워크 IPsec이라고 알려진 IP 보안 프로토콜은 네트워크 계층의 보안을 제공한다. IPsec 특징 호스트나 라우터 같은 네트워크 계층의 어떤 두 개체 사이에서 IP 데이터그램을 보호한다. 데이터그램의 페이로드 부분을 암호화하여 TCP 세그먼트 등이 암호화된다. 위의 기밀성을 제공하는 것처럼 출발지 인증, 데이터 무결성, 재생 공격 방지 같은 보안 서비스를 제공할 수 있다. IPsec과 가상 사설 네트워크 흩어져있는 기관들은 그들의 호스트와 서버가 기밀성을 유지하며 안전하게 서로에게 데이터를 전송할 수 있도록 종종 자신만의 IP 네트워크를 갖기를 원한다. 이를 위해 공공 인터넷과 완전히 분리된 라우터, 링크, DNS 시스템을 포함하는 물리적으로 독립된 네트워크를 실제로 설치할 수 있고, 이러한 네트워크를 라고 한다. 큰 유지 비용이 드는 사설 네트워크 대신 오늘날에는 기존 공공 인터넷 상에 을 설치한다. 을 이용하면 기관의 사무실…

ComputerNetwork
June 14, 2023
TCP 연결의 보안 - TLS

TCP 연결의 보안: TLS 보안 서비스가 추가되어 향상된 TCP 버전을 흔히 라고 부른다. TLS는 기밀성, 데이터 무결성, 서버인증과 클라이언트 인증을 통해 TCP를 향상하여 보안 서비스를 제공한다. TLS는 TCP를 보호하기 때문에 TCP 상에서 일어나는 어떠한 애플리케이션에든 사용될 수 있다. TLS는 소켓을 사용하는 간단한 API를 제공하는데, TCP의 API와 유사하다. TLS는 애플리케이션 계층에 존재하나 개발자의 관점에서는 보안 서비스로 강화된 TCP 서비스를 제공하는 트랜스포트 프로토콜이다. TLS 개요: almost TLS TLS를 이해하기 위해 TLS의 단순화된 버전인 를 먼저 설명한다. 는 핸드셰이크, 키 유도, 데이터 전송이라는 세 단계로 되어 있다. 핸드셰이크 클라이언트는 서버와 TCP 연결을 설립한다. 서버가 진짜 서버인지 확인한다. 클라이언트는 hello 메시지를 보내고, 서버는 CA로부터 인증된 인증서를 보내어 클라이언트는 인증서 내의 공개키가…

ComputerNetwork
June 14, 2023
전자메일 보안

전자메일의 보안 보안은 인터넷 프로토콜 스택 위쪽 4개 계층의 어느 곳에서나 보안 서비스를 제공할 수 있다. 보안이 특정 애플리케이션 계층 프로토콜을 위해 제공되면 그 프로토콜을 사용하는 애플리케이션은 보안 서비스를 사용할 수 있게 된다. 보안 기능이 하나 이상의 계층에서 제공되는 이유 보안은 네트워크 계층에서 제공하는 것으로 충분하지 않을까? 네트워크 계층에서 데이터그램의 모든 데이터를 암호화하고 IP 주소를 인증함으로써 ‘전면적 범위’의 보안을 제공하더라도 사용자 레벨의 보안은 제공할 수 없다. 예를 들어, 인터넷 상거래 사이트는 물건을 구입하려는 고객을 인증하는 데 IP 계층 보안에만 의존할 수는 없다. 프로토콜 상위 계층에서 보안 서비스를 포함한 새로운 인터넷 서비스를 구현하는 일이 점차 쉬워지고 있다. 보안 전자메일 보안 전자메일 시스템을 만들기 위해 암호화 원리들을 이용해보자. 기밀성 메시지를 대칭키 기술(AES,DES 등)으로 암호화 복호화하여 기밀성을 얻을 수 있다…

ComputerNetwork
June 13, 2023
종단점 인증(Authentication)

종단점 인증 종단점 인증이란 하나의 통신 개체가 다른 개체에게 자신의 신원을 컴퓨터 네트워크상으로 증명하는 작업이다. 예를 들어, 전자 메일 사용자가 서버에 신원을 입증할 수 있다. 서로 간의 인증은 인증 프로토콜의 한 부분으로서 교환된 메시지와 데이터만을 기반으로 수행되어야 한다. 대부분의 인증 프로토콜은 다른 프로토콜을 수행하기 전에 수행된다. 즉, 인증 후에 작업을 수행한다. 인증 프로토콜 ap(authentication protocol) 2.0 송신자가 이미 알려진 네트워크 주소(IP 주소)를 가지고 통신을 한다면 수신자는 인증 메시지를 가지고온 IP 데이터 그램 출발지 주소가 송신자의 IP 주소와 일치하는지 확인함으로써 앨리스를 인증할 수 있다. 그러나 IP 데이터그램을 생성해서 원하는 출발지 IP 주소를 넣고 그 데이터그램을 라우터로 보낼 수 있으므로 이는 안전하지 못하다. 예를 들어, 침입자가 가짜 출발지 주소를 쓰고 데이터를 보낼 수 있는데 이 방법은 의 한 형태이…

ComputerNetwork
June 13, 2023
암호 원리

암호의 원리 송신자가 보내는 원래 형태의 메시지를 평문 또는 원문이라고 한다. 송신자는 평문을 암호화 알고리즘을 사용해서 암호화하며, 암호화된 메시지인 암호문은 다른 침입자가 해석할 수 없다. 이 암호화 알고리즘은 모든이에게 알려져있고, 누구나 쉽게 사용할 수 있다. 즉, 전송한 데이터를 침입자가 복원할 수 없게 해주는 비밀 정보가 필요한데 이것이 바로 키이다. 시나리오 앨리스는 숫자나 문자의 열인 키 A를 암호화 알고리즘의 입력값으로 사용하여 암호화된 메시지 을 완성한다. 밥은 키 B와 암호문 을 복호화 알고리즘에 입력값으로 넣어 의 출력을 받는다. 대칭키 시스템 앨리스와 밥의 키가 동일하며 이 키는 둘만의 비밀이다. 공개키 시스템 키 중 하나는 세상 모두에게 알려져있고 다른 키는 앨리스 밥 중 한명만 알고 있다. 대칭키 암호화 카이사르 암호 영어로된 원문에 대해 평문의 각 철자를 알파벳 순서로 k번째 뒤에 오는 철자로 대치한다. (철자들의 순환을 가정. z의 1번째 뒤에 오…

ComputerNetwork
June 13, 2023
메세지 무결성과 전자서명

메시지 무결성과 전자서명 메시지 무결성 메시지가 정말 해당 출발지로부터 왔는가? 메시지가 전달되는 도중 변경되지는 않았는가? 암호화 해시 함수 해시 함수는 입력 m을 받아서 해시라 불리는 고정된 크기의 문자열 H(m)을 계산해낸다. 암호화 해시 함수는 H(x) = H(y)가 되는 서로 다른 두 메시지 x와 y를 찾는 일이 산술적으로 실행 불가능하다. 즉, (m, H(m))이 원래 메시지와 그 메시지에 대해 송신자가 만들어낸 해시값이라고 할 때, 침입자가 원래 메시지와 동일한 해시값을 갖는 다른 메시지 y를 위조해낼 수 없다. 인터넷 체크섬과 같은 간단한 체크섬은 같은 값을 만들기 쉬워 암호화 해시 함수로 사용하기에는 너무 허술하다. MD5, SHA MD5 해시 알고리즘이 오늘날 널리 쓰이고 있다. 덧붙이는 단계 하나의 1을 메시지 뒤에 붙이고 충분히 많은 0을 뒤에 덧붙여서 메시지 길이가 단위 길이 조건을 만족시킨다. 추가 단계 덧붙이기 전 메시지 길이를 64비트로 표현하여 추가…

ComputerNetwork
June 12, 2023
네트워크 보안-개요

네트워크 보안이란 무엇인가? 안전한 통신에 요구되는 특성 기밀성 송신자와 지정된 수신자만이 전송되는 메시지 내용을 이해할 수 있어야 한다. 도청자가 메시지를 가로챌 수도 있으므로 도청자가 해석할 수 없도록 메시지를 어떠한 방식으로 암호화해야한다. 메시지 무결성 통신하는 내용이 전송 도중에 변경되지 않아야 한다. 종단점 인증 통신에 참여하는 상대방이 누구인지 확인하기 위해 상대방의 신원을 확인할 수 있어야 한다. 운영 보안 오늘날 대부분 기관들의 네트워크는 공공 인터넷에 연결되어 있다. 따라서 외부로부터의 공격을 받을 수 있는 위험을 갖고 있고 대비하여 방화벽이나 보안 체계를 갖고 있어야 한다. 보안 시나리오 송신자와 수신자 데이터 일부 혹은 전부를 암호화하여 안전한 통신을 하려고 할 것이다. 침입자 채널상의 제어 메시지 및 데이터 메시지를 스니핑하거나 기록 메시지 혹은 메시지 내용의 조작, 삽입 혹은 삭제 안전한 통신에 요구되는 특성 보안 시나리오

ComputerNetwork
June 11, 2023
이동성 관리

이동성 관리: 원칙 💡 이동 장치 = 시간에 따라 네트워크로의 접속점을 변경하는 노드 장치 이동성: 네트워크 계층의 관점 네트워크 계층의 관점에서 본 다양한 이동성 스펙트럼 물리적인 이동 장치가 네트워크 접속점을 이동할 때 그 장치가 얼마나 활성화된 상태인가에 따라 다양한 문제들을 네트워크 계층에 제기한다. (a) 접속 네트워크 간 장치 이동성, 이동 중에는 전원을 끔 이곳에는 네트워크 사이를 물리적으로 이동하지만 이때 이동 장치의 전원을 끄고 움직이는 이동 사용자가 위치한다. 전원이 켜져 있는 동안 하나의 네트워크에만 접속하며 이동하지 않고 머물기 때문에, 네트워킹 관점에서 이 장치는 이동 중인 것, 즉 이 아니다. (b) 하나의 동일한 무선 접속 네트워크 안에서의 장치 이동성 이동 장치는 물리적으로 이동 가능하지만 동일한 접속 네트워크에 연결된 상태를 유지한다. 이러한 장치도 네트워크 계층 관점에서는 모바일이 아니다. 또한 장치가 동일한 802.11 AP 또는 LTE 기지국과…

ComputerNetwork
June 10, 2023
셀룰러 네트워크 4G, 5G

셀룰러 네트워크: 4G, 5G 셀룰러(cellular) 네트워크 라는 용어는 셀룰러 네트워크의 영역이 전파 도달 능력에 따라 여러 개의 지리적 영역, 즉 로 나뉜다는 사실에서 비롯되었다. 각각의 셀은 셀 영역 안의 와 신호를 주고받는 을 갖고 있다. 하나의 셀이 담당하는 영역의 넓이는 여러 요소에 의해 영향을 받는다. 기지국과 단말기의 송신 강도 셀 내의 방해가 되는 건물 기지국 안테나의 설치 높이와 종류 4G LTE 셀룰러 네트워크: 구조 및 요소 아래 그림은 구조의 주요 요소를 보여준다. 이동 장치(mobile device) 셀룰러 통신 사업자의 네트워크에 연결되는 스마트폰, 태블릿, 랩톱 또는 IoT 장치 등이며, (고정된 온도 세선 또는 감시 카메라도 포함) 웹 브라우저, 지도 앱, 음성 및 화상회의 앱, 모바일 결제 앱 등이 실행되는 곳이다. 전체 을 구현한다. NAT을 통해 얻을 수 있는 를 갖고 있는 네트워크의 종단점이다. 전 세계적으로 고유한 라는 64비트의 …

ComputerNetwork
June 09, 2023
WiFi 802.11 무선 랜

와이파이: 802.11 무선 랜 1990년대 다양한 관련 기술 및 표준이 개발되었으나 그중 가장 성공적인 기술, 와이파이(WiFi)라고 알려진 이 관련 기술들을 통합하게 되었다. IEEE 802.11 표준안 802.11b, g, n, ac, ax 표준 일반적으로 거리가 70m 미만인 영역에서 동작하는 WLAN 용도 이전 표준과의 을 갖는다. 즉, 802.11g 기능만을 갖는 이동 단말도 802.11ac 또는 802.11ax 기지국과의 상호작용이 가능하다. 모두 라는 동일한 매체 접속 프로토콜을 사용한다. 802.11af, ah 표준 IoT, 센서 네트워크, 측정 애플리케이션을 활용하기 위한 용도 (좀 더 먼 거리에서 동작) 주파수 영역 802.11 무선 랜 장치들은 두 종류의 주파수 영역에서 동작한다. 2.4 GHz 대역 5.1~5.8 GHz 주파수 영역 비허가(unlicensed) 주파수 대역 이 영역에서 802.11 장치들은 2.4 GHz 무선 전화 및 가전제품과 주파수 경…

ComputerNetwork
June 08, 2023
무선 링크와 네트워크의 특징

무선 링크와 네트워크의 특징 무선 링크는 유선 링크와 다르게 추가로 고려해야 하는 것들이 존재한다. 신호 세기의 감소, 경로 손실 전자기파는 물체를 통과함에 따라 약화된다. 자유 공간에서도 전자기파 신호는 분산되고, 송신자와 수신자 사이의 거리가 증가함에 따라 신호의 세기가 감소한다. 이런 현상을 이라고도 한다. 다른 출발지로부터의 간섭 동일 주파수 대역으로 전송되는 무선 신호들은 서로 하게 된다. 이러한 송신자 간의 간섭 외에 주변의 전자기 잡음(e.g., 근처의 모터 또는 전자레인지로 인한) 등도 간섭을 일으킬 수 있다. 이런 이유로 최근의 802.11 표준들은 5 GHz 대역에서 동작한다. 다중 경로 전파 송신자와 수신자 간에 전송되는 전자기파의 일부가 물체나 지표에 부딪혀서 서로 길이가 다른 여러 개의 경로를 겨처갈 때 이 생긴다. 이는 수신 측에서 감지되는 신호를 또렷하지 않게 만든다. 이들을 통해 알 수 있듯이, 유선 링크보다는 무선 링크에서 비트 오류가 더 자주 발생한…

ComputerNetwork
June 07, 2023
무선 네트워크-개요

개요 무선 네트워크의 요소 무선 네트워크는 다음과 같은 구성 요소로 이루어진다. 무선 호스트 는 유선 네트워크의 경우처럼 애플리케이션을 실행하는 종단 시스템 장치다. e.g., 스마트폰, 태블릿, 랩톱, 센서 등의 IoT(Internet of Things) 장치, 가전제품, 자동차, 그 외 인터넷에 연결된 무수히 많은 장치 무선 링크 호스트는 를 통해 기지국(base station)이나 다른 무선 호스트에 연결된다. 위 그림에서 무선 링크는 네트워크 가장자리에 있는 호스트를 코어에 있는 네트워크 인프라스트럭처로 연결해준다. 무선 링크는 때로는 네트워크 코어에서도 라우터, 스위치 등 네트워크 장치들 사이를 연결해주는 데 사용될 수 있다. 기지국 은 기지국에 결합된 무선 호스트와의 데이터(e.g., 패킷) 송수신에 대한 책임을 진다. 즉, 자신과 결합되어 있는 다수의 무선 호스트들 사이의 전송을 중재하고 조정한다. 는 것은 아래 두 가지를 의미한다. 호스트가 해당 기지국의 무선 통신…

ComputerNetwork
June 06, 2023
데이터센터 네트워킹

데이터 센터 네트워킹 데이터 센터는 인터넷에 연결되어 있을 뿐만 아니라 내부 호스트들 간 상호연결을 위해 자체 를 갖고 있다. 데이터 센터의 3가지 목적 웹 페이지, 검색 결과, 전자메일, 스트리밍 비디오와 같은 콘텐츠 제공 검색 엔진을 위한 분산 인덱스 계산과 같은 특정 데이터 처리 작업이 가능한 대량 병렬 컴퓨팅 인프라스트럭처 역할 다른 회사에게 을 제공 데이터 센터 구조 호스트 데이터 센터에서 작업을 수행한다. 피자 박스 모양의 라고도 불린다. CPU, 메모리, 디스크 저장장치를 갖고 있는 범용 호스트다. 호스트들은 20~40대의 블레이드를 적재할 수 있는 에 적재된다. 데이터 센터 내부에서 사용되는 자신만의 IP 주소를 할당 받는다. TOR(top of rack) 스위치 랙의 맨 위에는 TOR스위치라고 불리는 스위치가 있다. TOR 스위치는 네트워크 인터페이스 카드를 통해 랙에 있는 호스트들을 연결해준다. 그 외의 다른 포트들을 통해 데이터 센터의 다른 스위치들과 연결된다…

ComputerNetwork
June 05, 2023
링크 가상화

링크 가상화: 링크 계층으로서의 네트워크 💡 MPLS의 목표는 고정 길이 레이블과 가상 회선을 기반으로 데이터그램을 전달하기 위해 목적지 기반 IP 데이터그램 인프라스트럭처를 포기하는 것이 아니라, 가능한 경우 데이터그램을 선택적으로 레이블링해서 라우터로 하여금 고정 길이 레이블을 기반으로 데이터그램을 전달할 수 있도록 목적지 기반 IP 데이터그램 전달 하부구조를 확장하는 것이다. MPLS 헤더 MLPS가능 라우터에 의해 처리되는 링크 계층 프레임의 형식은 2계층 헤더와 3계층 헤더 사이에 작은 MPLS 헤더를 가진다. MPLS 헤더에는 레이블, 실험을 위해 예약된 3개의 비트, 일련의 스택된 MPSL 헤더들의 끝을 나타내는 1개의 S 비트, TTL 필드가 있다. MPLS 헤더는 MPLS 가능 라우터들 사이에서만 전송될 수 있다. MPLS 동작 과정 MPLS 가능 라우터는 MPLS 레이블을 포워딩 테이블에서 찾아 적당한 출력 인터페이스로 데이터그램을 전달하여 MPLS 프레임을 전…

ComputerNetwork
June 04, 2023
스위치 근거리 네트워크

스위치 근거리 네트워크 스위치는 링크 계층에서 동작하기 때문에 링크 계층 프레임을 교환한다. 또한, 네트워크 계층 주소를 인식하지 않으며, 2계층 스위치들로 구성된 네트워크에서 경로를 결정하는 데 OSPF 같은 라우팅 알고리즘을 사용하지 않는다. 즉, IP 주소가 아닌 링크 계층 주소를 사용한다. 링크 계층 주소체계와 ARP 네트워크 계층 주소와 링크 계층 주소 네트워크 계층 주소 체계가 있는데도 링크 계층 주소를 갖는 이유 랜은 IP와 인터넷만을 위해서가 아니라 임의의 네트워크 계층 프로토콜을 위해 설계되었기 때문이다. 만일 어댑터가 MAC 주소 대신에 네트워크 계층 주소를 사용한다면, 네트워크 계층 주소를 어댑터 RAM에 저장하고 어댑터를 이동할 때마다 재구성해야 한다. 즉, 네트워크 구조에서 계층이 독립적인 구성요소가 되도록 하려면 각 계층은 자신만의 주소 기법을 가져야만 한다. MAC 주소 실제로 링크 계층 주소를 가진 것은 호스트나 라우터가 아닌 호스트나 라우터의 어댑…

ComputerNetwork
June 03, 2023
다중 접속 프로토콜

다중 접속 링크와 프로토콜 두 종류의 네트워크 링크 링크의 한쪽 끝에 한 송신자와 링크의 다른 쪽 끝에 한 수신자가 있다. 과 이 여기에 속한다. (뒤에 다룬다.) 동일한 하나의 공유된 브로드캐스트 채널에 다수의 송신 노드 및 수신 노드가 연결된다. 임의의 한 노드가 프레임을 전송하면 채널이 그 프레임을 브로드캐스트해서 다른 모든 노드가 그 프레임의 복사본을 수신하기 때문에 브로드캐스트 용어가 쓰인다. 다양한 다중 접속 채널 다중 접속 문제(multiple access problem) 모든 노드가 프레임을 전송할 수 있으므로 2개 이상의 노드가 브로드캐스트 채널에서 직접 통신할 수 있고, 이런 일이 발생하면 모든 노드는 동시에 여러 개의 프레임을 받게 된다. 즉, 전송된 프레임들이 각 수신자에서 충돌하게 되고 어떤 수신 노드도 전송된 프레임의 의미를 파악할 수 없게 된다. 따라서 충돌에 관련된 모든 프레임은 손실되며, 다수의 노드가 빈번히 프레임을 전송하려 한다면 많이 충돌할…

ComputerNetwork
June 02, 2023
오류 검출, 정정

오류 검출 및 정정 기술 비트 오류를 방지하기 위해 송신 노드에서 에 를 첨가한다. 송신되는 와 는 전송 도중 변경될 수 있다. 즉, 수신자는 변경의 가능성이 있는 비트로 오류 검출 여부를 확인하여야 한다. 오류 검출 및 정정 기술을 사용하더라도 여전히 미검출된 비트 오류(undetected bit error)가 있을 수 있다. 즉, 수신자는 잘못된 데이터그램을 네트워크 계층으로 전달할 수 있고, 프레임 헤더의 다른 필드의 내용이 잘못된 것을 모를 수도 있다. 따라서 오류를 감지하지 못할 확률이 낮은 기법을 선택해야한다. (대체로 확률이 낮을 수록 오버헤드가 크다.) 패리티 검사 단일 패리티 비트 데이터 D가 d개의 비트를 갖고 있다고 가정하자. 짝수 패리티 기법에서는 단순히 D에 한개의 를 추가하고, d+1개의 비트에서 1의 총개수가 짝수가 되도록 을 선택한다. 수신자는 수신된 d+1개의 bit에서 1의 개수가 짝수임을 확인한다. (당연히 홀수라면 1의 개수를 홀수로 정…

ComputerNetwork
June 01, 2023
Link Layer

링크 계층 소개 노드 링크 계층 프로토콜을 실행하는 장치 e.g. 호스트, 라우터, 스위치, AP(access point, 7장에서 설명) 등 링크 통신 경로상의 인접한 노드들을 연결하는 통신 채널 데이터그램을 출발지 호스트에서 목적지 호스트로 이동시키기 위해서는 데이터그램을 종단 간 경로의 개별 링크들로 이동시켜야만 한다. 한 링크에서 전송 노드는 데이터그램을 으로 캡슐화해서 링크로 전송한다. 위 그림에서는 6개의 링크를 거쳐간다. 링크 계층이 제공하는 서비스 데이터그램을 링크상으로 전송하기 전에 링크 계층 프레임에 캡슐화한다. 프레임은 데이터그램이 들어있는 데이터필드와 여러 개의 헤더 필드로 구성된다. 프로토콜은 링크상으로 프레임을 전송하는 규칙을 명시한다. 단일 송신자와 단일 수신자의 점대점 링크에서의 은 단순하며, 링크가 사용되지 않을 때마다 프레임을 전송할 수 있다. 하나의 브로드캐스트 링크를 여러 노드가 공요하는 경우, MAC 프로토콜은 여러 노드로부터의 프레임 …

ComputerNetwork
May 24, 2023
ICMP

인터넷 제어 메시지 프로토콜(ICMP) 은 호스트와 라우터가 서로 간에 네트워크 계층 정보를 주고받기 위해 사용된다. ICMP는 종종 IP의 한 부분으로 간주되지만, ICMP 메시지가 IP 데이터그램에 담겨 전송되므로 구조적으로는 IP 바로 위에 있다. 즉, ICMP 메시지도 IP 페이로드로 전송되며, 호스트가 상위 계층 프로토콜이 ICMP라고 표시된(상위 계층 프로토콜 번호가 1번인) IP 데이터그램을 받으면 ICMP로 내용을 역다중화한다. ICMP 메시지는 가 있고, ICMP 메시지의 발생 원인이 된 IP 데이터그램의 헤더와 첫 8바이트를 갖는다. 이는 송신자가 오류를 발생시킨 패킷을 알 수 있도록 하기 위해서이다. 중요한 ICMP 메시지 타입들은 다음과 같다 💡 ICMP 메시지는 오류 상태를 알리기 위해서만 사용되는 것이 아니다. ping 프로그램 를 특정 호스트에 보낸다. 목적지 호스트는 에코 요청을 보고 나서 을 보낸다. 대부분의 TCP/IP 구현은 ping 서버를 운영…

ComputerNetwork
May 24, 2023
Network Management & SNMP

네트워크 관리와 SNMP, NETCONF/YANG 란 무엇인가? [Saydam 1996]에는 이에 대해 잘 정리된, 한 문장으로 된 정의가 나온다. 네트워크 관리는 적정한 비용으로 실시간, 운용 성능, 서비스 품질 등의 요구사항을 만족시키기 위해 네트워크와 구성요소 자원을 감시, 테스트, 폴링, 설정, 분석, 평가, 제어하는 하드웨어, 소프트웨어, 인간 요소 등을 배치하고, 통합, 조정하는 것이다. 이 절에서는 이 광범위한 정의 중에서 네트워크 관리의 기초, 즉 네트워크 관리자가 자신의 일을 수행하는 데 사용하는 구조, 프로토콜, 데이터만을 다룬다. 네트워크 관리 프레임워크 아래 그림은 네트워크 관리의 핵심 요소들을 나타낸다. 관리 서버(managing server) 관리 서버는 의 중앙 집중형 네트워크 관리 스테이션에서 동작하는, 일반적으로 와 상호작용하는 애플리케이션이다. 네트워크 관리 활동이 일어나는 장소로서 네트워크 관리 정보의 수집, 처리, 분석, 발송을 제어한다. 여기…

ComputerNetwork
May 22, 2023
SDN Control Plane

소프트웨어 정의 네트워크(SDN) 제어 평면 이 절에서는 4.4절에서 사용한 SDN 용어들을 다시 채택하여 네트워크의 포워딩 장비들은 ‘’ 또는 그냥 ‘’라고 부를 것이다. 이 스위치들에서의 포워딩 결정은 네트워크 계층에서의 출발지/목적지 주소, 링크 계층에서의 출발지/목적지 주소 외에도 트랜스포트 계층, 네트워크 계층, 링크 계층 패킷 헤더의 다른 많은 값에 기반하여 이루어진다. SDN 구조의 특징 플로우 기반 포워딩 으로 제어되는 스위치들에서의 패킷 전달은 트랜스포트 계층, 네트워크 계층, 또는 링크 계층 헤더의 어떤 값을 기반으로 하든 이루어질 수 있다. 이는 앞 절에서 살펴본, 의 포워딩이 온전히 데이터그램의 목적지 주소를 기반으로 이루어지는 전통적인 라우터 기반 포워딩과는 매우 대조적인 특성이다. 💡 SDN에서는 모든 네트워크 스위치의 플로우 테이블 항목들을 계산하고 관리, 설치하는 일이 모두 의 임무다. 데이터 평면과 제어 평면의 분리 데이터 평면 네트워크의 들로 구성된…

ComputerNetwork
May 20, 2023
BGP

BGP eBGP (External BGP): 이웃 AS로부터 서브넷의 도달 가능성 정보를 얻습니다. 즉, 게이트웨이 간에 서브넷의 도달 가능성 정보를 교환하는 역할을 합니다. 인접한 AS 간의 경로 정보 교환을 통해 AS는 다른 네트워크로의 경로를 확인할 수 있습니다. iBGP (Internal BGP): 도달 가능성 정보를 AS 내부의 모든 라우터로 전파합니다. iBGP는 게이트웨이에서 내부 라우터로 도달 가능성 정보를 전달하는 역할을 수행합니다. 이를 통해 AS 내부의 모든 라우터는 최신의 도달 가능성 정보를 유지할 수 있습니다. BGP는 도달 가능성 정보와 정책에 기반하여 다른 네트워크로의 “좋은” 경로를 결정하는 데 사용됩니다. AS는 자체 정책과 관련하여 다른 네트워크로의 경로 선택을 조정할 수 있습니다. 또한, BGP는 서브넷이 자신의 존재를 인터넷 전체에 알릴 수 있도록 해줍니다. 즉, “나는 여기에 있어요”라는 메시지를 인터넷에게 알릴 수 있습니다. BGP는 인터넷…

ComputerNetwork
May 19, 2023
OSPF

개방형 최단 경로 우선(OSPF) 프로토콜 과 는 인터넷에서 AS 내부 라우팅에 널리 사용된다. OSPF는 링크 상태 정보를 플러딩(flooding)하고 다익스트라 최소 비용 경로 알고리즘을 사용하는 링크 상태 알고리즘이다. OSPF를 이용하여 각 라우터는 전체 AS에 대한 완벽한 토폴로지 지도(그래프)를 얻는다. 각 라우터는 자신을 루트 노드로 두고 모든 서브넷에 이르는 최단 경로 트리를 결정하기 위해 혼자서 다익스트라의 최단 경로 알고리즘을 수행한다. OSPF를 사용하는 라우터는 자율 시스템 내의 다른 모든 라우터에게 라우팅 정보를 브로드캐스팅한다. 링크 상태가 변경될 때마다 링크 상태가 변경되지 않았더라도 정기적으로(최소한 30분마다 한 번씩) OSPF 메시지에 포함된 상태 정보는 인터넷 프로토콜에 의해 전달되며, 상위 계층 프로토콜 번호로는 OSPF를 의미하는 를 갖는다. 따라서 OSPF 프로토콜은 신뢰할 수 있는 메시지 전송과 링크 상태의 브로드캐스트와 같은 기능을 스스…

ComputerNetwork
May 17, 2023
Routing Protocol

Network Layer Functions Forwarding : Data Plane Routing : Control Plane 전통적 방식 SDN Controller : 별도의 서버가 전체 네트워크를 관리 라우팅이란? 라우터에 저장될 라우팅 테이블을 만드는 과정 포워드 테이블의 구조 : 기존 방식(전통적 방식) 각각의 라우터가 제어평면(Control Plane)에서 각각의 포워딩 테이블을 작성 Logically Centralized Control Plane(최근) 별도의(일반적으로 원격) 컨트롤러가 라우터의 로컬 제어 에이전트(CAs)와 상호 작용하여 포워딩 테이블을 작성 동적 라우팅의 종류 💡 정적 라우팅은 사람이 직접하는 것이므로 따로 다루지 않는다. Global 전체 네트워크의 구조와 연결비용을 알고 있음 Link state 알고리즘 각 라우터는 전체 네트워크의 구성(topology)과 링크 상태 정보를 유지 모든 목적지 네트워크까지의 최적 경로 계산 최적 경로를 기…

ComputerNetwork
May 15, 2023
NAT, IPv6

NAT 가정 내 여러대의 컴퓨터, 스마트폰에 각각 IP를 할당하는 것이 아니라, 인터넷 공유기 1대에만 IP할당 같은 공유기에 연결된 기기들은 사설(가상)IP를 사용하고, 외부에서는 하나의 IP(공식 IP)를 공유함 A Class : 10.x.x.x B Class : 172.16.x.x ~ 172.31.x.x C Class : 192.168.0.x ~ 192.168.255.x 10.0.0.1 호스트가 128.199.40.186 외부 IP에 접근하고 싶다. 해당 데이터그램이 라우터를 거칠때, 라우터에서 NAT translation table에 WAN, LAN의 IP주소 및 포트번호를 각각 매핑한다. 라우터로 응답이 오면 table을 참조하여 해당 IP에 전달한다. 💡 NAT는 IPv4가 IPv6으로 전환되는 과도기에 사용되도록 개발되었다. → 결국 IPv6로 전환되어야 함. IPv6 IPv4의 주소 고갈로 등장, Header의 길이가 20Byte → 40Byte로 증가 pri…

ComputerNetwork
May 14, 2023
IPv4 - Internet Protocol

The Internet Network Layer IP RIP, OSPF, BGP : Control Plane(제어 평면) - 라우터들끼리 정보를 교환하는데 사용(나중에 설명) ICMP : Error reporting에 사용 IP Format ver : IP v4/v6 구분 head. len(length) : 기본 20바이트(32bit = 4byte 가 5줄) type of service : 맨 아래 data(=payload)의 타입 결정 time to live : 남아있는 홉의 개수(라우터 경유마다 1개씩 줄어듬, 좀비화를 막기 위함) upper layer : 어떤 레이어에서 온건지(TCP or UDP) length : 전체 길이(header + payload) options (if any) : 타임스탬프, 경로 지정, 경로 정보 등 저장 16-bit identifier & flgs & fragment offset IP fragmentation, Reassembly 경로를 통…

ComputerNetwork
May 11, 2023
Data plane & Control plane & Inside Router

라우터 구조 라우터는 Data plane, Control plane 두 부분으로 나뉘어 있다. Control Plane(라우팅 담당) 소프트웨어적으로 처리 일정한 시간마다 라우팅 Control Plane은 네트워크 장비 사이의 통신, 경로 선택, 라우팅 테이블 관리 등의 기능을 수행 Control Plane은 네트워크 장비의 동작을 제어하고, 네트워크 상태를 모니터링하여 최적의 경로를 결정 Control Plane은 네트워크의 안정성과 효율성을 유지하고, 서비스 제공을 위한 정책을 관리 Data Plane(포워딩 담당) 하드웨어적으로 처리 Data Plane은 패킷 전달과 관련된 작업을 처리하며, 주로 라우터나 스위치와 같은 네트워크 장비에서 동작 Data Plane은 패킷의 전달 경로를 결정하고, 포워딩 기능을 수행하여 패킷을 목적지로 전달 Data Plane은 네트워크의 성능과 속도에 직접적인 영향을 미치는 핵심적인 역할을 담당 라우터 구조 방식 간단하지만 메모리를 거쳐서…

ComputerNetwork
May 09, 2023
TCP

TCP 서비스 연결형(Connection-Oriented): TCP는 IP 계층 위에 가상의 회선을 설정하여 실제 연결을 수립하는 방식으로 동작합니다. 신뢰성(Reliability): TCP는 확인 메커니즘을 통해 데이터의 신뢰성 있는 전송을 제공합니다. 데이터의 손실이나 손상을 감지하고, 재전송을 통해 신뢰성 있는 통신을 보장합니다. 흐름제어(Flow Control): TCP는 상대방이 처리할 수 있는 범위 내에서 데이터를 전송하도록 흐름을 제어합니다. 수신측의 버퍼 상태를 고려하여 데이터의 전송 속도를 조절합니다. 혼잡제어(Congestion Control): TCP는 네트워크의 혼잡 현상을 방지하거나 제어하는 기능을 갖추고 있습니다. 네트워크 상황을 모니터링하고 데이터의 전송 속도를 조절하여 네트워크 혼잡을 예방합니다. 스트림 통신: TCP는 데이터를 바이트 단위로 나누어 전송합니다. 이는 데이터를 연속된 스트림으로 처리하며, 수신측에서는 이를 다시 조립하여 원본 데이터로 …

ComputerNetwork
May 09, 2023
UDP

UDP 목적 프로세스-대-프로세스 통신 생성 : 포트번호 이용 최소한의 오류 제어 메커니즘 수행 프로세스로부터 데이터 단위를 받아 신뢰성 없는 전달 제공 비 연결형, 신뢰성이 없는 전송 프로토콜 최소한의 오버헤드만 사용하는 간단한 프로토콜 UDP (User Datagram Protocol) UDP는 “no frills” 또는 “bare bones” 인터넷 전송 프로토콜입니다. UDP는 “best effort” 서비스를 제공하며, UDP 세그먼트는 다음과 같은 특징을 가질 수 있습니다: 손실될 수 있음 순서가 바뀌어 애플리케이션으로 전달될 수 있음 연결이 없는 프로토콜로, UDP 송신자와 수신자 간에는 핸드셰이킹이 없습니다. 각 UDP 세그먼트는 다른 세그먼트와 독립적으로 처리됩니다. UDP는 다음과 같은 용도로 사용됩니다: 스트리밍 멀티미디어 애플리케이션 (손실에 대해 관대하고 전송률에 민감) DNS (Domain Name System) SNMP (Simple Network Man…

ComputerNetwork
May 07, 2023
Multiplexing & Demultiplexing

다중화 | 역다중화 💡 다중화(Sender) 다중화는 여러 소켓으로부터 데이터를 처리하고, 전송 헤더를 추가하여 나중에 역다중화를 위해 사용합니다. 역다중화(Receiver) 역다중화는 헤더 정보를 사용하여 받은 세그먼트를 올바른 소켓으로 전달합니다. 네트워크의 다중화는 여러 개의 데이터 흐름을 하나의 통신 매체를 통해 동시에 전송하고, 역다중화는 다중화된 데이터 흐름을 각각의 목적지로 분리하여 독립적으로 수신하는 것을 의미합니다. 다중화 해제(Demultiplexing)의 작동 방식 호스트는 IP 데이터그램을 수신합니다. 각 데이터그램은 소스 IP 주소와 목적지 IP 주소를 가지고 있습니다. 각 데이터그램은 한 개의 전송 계층 세그먼트를 운반합니다. 각 세그먼트는 소스 포트 번호와 목적지 포트 번호를 가지고 있습니다. 호스트는 IP 주소와 포트 번호를 사용하여 세그먼트를 적절한 소켓으로 전달합니다. 페이로드: 상위 계층에서 전송된 데이터로 이루어진 부분입니다. (상위 헤더 +…

ComputerNetwork
May 06, 2023
TransportLayer - TCP / UDP

전송 서비스와 프로토콜 전송 프로토콜은 서로 다른 호스트에서 실행되는 애플리케이션 프로세스 간의 논리적 통신을 제공합니다. 전송 프로토콜은 종단 시스템(end systems)에서만 실행됩니다. 송신 측에서는 전송 프로토콜이 애플리케이션 메시지를 세그먼트로 분할하고 네트워크 계층으로 전달합니다. 수신 측에서는 전송 프로토콜이 세그먼트를 메시지로 재조립하고 애플리케이션 계층으로 전달합니다. 인터넷에서는 TCP(Transmission Control Protocol)와 UDP(User Datagram Protocol)라는 두 가지 전송 프로토콜이 일반적으로 사용됩니다. 전송 계층 vs. 네트워크 계층 비유 네트워크 계층은 호스트 간의 논리적 통신을 제공합니다. 전송 계층은 프로세스 간의 논리적 통신을 제공합니다. 전송 계층은 네트워크 계층을 의존하며 강화합니다. 프로그램, 프로세스, 스레드: 가정의 비유: Ann의 집에 있는 12명의 아이들이 Bill의 집에 있는 12명의 아이들에게 …

ComputerNetwork
Assignments
April 29, 2023
소켓프로그래밍 과제#2-4 (계산기 구현)

소켓 프로그래밍 과제#2-4 : 계산기 구현 요구사항 클라이언트에서 서버에게 수식을 보내면 서버는 해당 수식의 해를 클라이언트에게 전송 코드 코드(클라이언트) 코드(서버) 계산 과정은 후위표기법으로 구현하였음. 각 연산자의 우선순위를 고려하여 연산자스택, 피연산자스택에서 push or pop 실행 결과 1+512/2+(23)-1 서버 클라이언트 (1+2)*3/(3-1)+13 서버 클라이언트 (3+5)/(1+3)*11 서버 클라이언트 파일 : 깃허브 링크 요구사항 코드 코드(클라이언트) 코드(서버) 실행 결과

ComputerNetwork
Assignments
April 28, 2023
소켓프로그래밍 과제#2-3 (DBMS활용 DNS구현)

소켓 프로그래밍 과제#2-3 : DBMS활용 DNS구현 요구사항 클라이언트에서 서버에게 IP or Domain Name을 보내면 서버는 Domain Name or IP를 클라이언트에게 반환, 구분 코드는 N,R,W이고, W는 INSERT쿼리 실행하여 새로운 Domain Name, IP할당 DBMS MySQL사용 JAVA에서 구현할 것이기 때문에 JDBC드라이버 필요. 코드 코드(클라이언트) 코드(서버) IP주소는 개인 테스트를 위해 localhost(127.0.0.1)로 하였음 클라이언트로부터 받은 메세지를 파싱( : 를 기준으로)하여 N,R,W중 어떤 명령을 실행할지 판단 DB 기본키는 id IP, NAME은 유니크 키로 설정하였음 실제 다른 두 컴퓨터로 연결해보기 💡 서버 컴퓨터는 공유기 와이파이에 연결하였고, 클라이언트 컴퓨터는 핸드폰 핫스팟으로 연결하였습니다. Domain Name → IP 전환 기능 IP → Domain Name 전환 기능 새로운 IP&Domain …

ComputerNetwork
Assignments
April 27, 2023
소켓프로그래밍 과제#2-2 (파일 읽기/쓰기)

소켓 프로그래밍 과제#2-2 : 파일 읽기/쓰기 요구사항 클라이언트에서 서버에게 파일 이름을 보내면, 해당 파일을 읽고/쓰는 기본적인 기능 구현 코드 코드(클라이언트) 클라이언트에서 지원하는 형식은 두가지이다. R:파일이름 W:파일이름:추가할내용 코드(서버) 클라이언트로부터 받은 문자열을 “:”기준으로 파싱하여 읽기타입인지, 쓰기타입인지를 첫번째 인자로부터 알아내고, 파일 이름을 두번째 인자로부터 알아내며, (만약 쓰기라면) 세번째 인자를 통해 쓸 내용을 알아낸다. 텍스트 파일 실행 결과 클라이언트 읽기(R) 클라이언트 쓰기(W) 파일 내용 예외처리 파일 : 깃허브 링크 요구사항 코드 코드(클라이언트) 코드(서버) 텍스트 파일 실행 결과

ComputerNetwork
Assignments
April 26, 2023
소켓프로그래밍 과제#2-1 (ASCII)

소켓 프로그래밍 과제#2-1 : ASCII 변환 요구사항 클라이언트에서 서버로 문자열을 보내면, 서버에서 해당 문자열을 아스키 코드로 변환 후 클라이언트에게 전송. 코드 코드(클라이언트) 코드(서버) 실행 결과 서버측은 붉은색, 클라이언트 측은 푸른색으로 표시하였습니다. 서버 오픈 클라이언트 오픈 클라이언트 오픈 후 서버 상태 클라이언트에서 서버로 문자열 전송 & 완료 완료 후 서버 상태 아스키 코드표 코드표를 확인해 보면, D : 68 a : 97 n : 110 k : 107 o : 111 o : 111 k : 107 U : 85 n : 110 i : 105 v : 118 로 올바르게 전송된 것을 확인할 수 있다. 코드 개선 Scanner 대신 BufferedReader를 쓰는 것이 속도가 더 빠르다. Scanner는 버퍼 크기가 1KB이고, BufferedReader는 버퍼 크기가 8KB이다. 예제같은 경우처럼 문자열 크기가 작을 경우는 큰 이득은 없음. Scann…

ComputerNetwork
March 28, 2023
CDN:Content Distribution Network

Video Streaming and CDNs: context 동영상 트래픽은 인터넷 대역폭의 주요 소비자 Netflix와 YouTube는 가정용 ISP 트래픽의 37%와 16%를 차지합니다. 약 10억 명의 YouTube 사용자와 약 7500만 명의 Netflix 사용자가 있습니다. Challenge : 규모 - 약 10억 명의 사용자에게 어떻게 도달할 것인가? 메가 비디오 서버는 작동 불가능 Challenge : 이질성 다양한 사용자들은 다양한 가용성을 지님 (예: 유선 vs 무선; 대역폭 풍부 vs 대역폭 부족) 해결책: 분산된 응용 수준(Application Level)의 인프라 Multimedia : Video 동영상: 일정한 속도로 표시되는 이미지의 연속(예: 초당 24개의 이미지) 디지털 이미지: 픽셀 배열 각 픽셀은 비트(RGB)로 표현됨 코딩: 이미지 내부 및 이미지 간의 중복을 사용하여 이미지를 인코딩하는 데 사용되는 비트 수를 줄임 공간적 압축 (이미지 내부)…

ComputerNetwork
March 24, 2023
P2P Applications

P2P Applications 분산시스템 클라이언트-서버 P2P 외부인이 볼때 하나의 시스템이 동작하는 것처럼 느껴져야함 Client-Server vs. P2P Client-Server 파일 F를 N클라이언트에 배포하는데 걸리는 시간 N = 클라이언트 수 F = 파일 크기 u_{s} = 서버 전송 속도 d_{min} = 클라이언트 속도 중 최저값 server transmission: N개의 파일 사본을 순차적으로 전송(upload)해야한다. 하나의 카피를 보내는데 걸리는 시간: F/u_{s} N개의 카피를 보내는데 걸리는 시간: NF/u_{s} client: 각 클라이언트들은 파일 사본을 download해야한다. dmin = min client download rate min client download time: F/d_{min} P2P N, F, u_{s}, d_{min} : Client-Server와 동일 server transmission: 최소한 하나의 사본을 up…

ComputerNetwork
March 23, 2023
DNS:Domain Name System

DNS: Domain Name System 사람들은 여러 식별자를 가지고 있다: SSN(사회보장번호), 이름, 여권 번호 등이 있다. 인터넷 호스트와 라우터는 다음과 같은 식별자들이 있다: 32비트의 IP 주소 - 데이터그램을 주소 지정하는데 사용된다. “이름”, 예를 들면 www.yahoo.com - 사람들에게 읽기 쉬운 형태로 사용된다. 질문: IP 주소와 이름 간의 매핑, 그리고 그 반대의 경우에는 어떻게 할 수 있을까? 도메인 이름 시스템: 계층적인 많은 네임 서버 에 구현된 분산 데이터베이스 응용 계층 프로토콜: 호스트와 네임 서버가 이름을 확인하여 주소/이름 변환을 한다. 참고: 핵심 인터넷 기능이며, 응용 계층 프로토콜로 구현되어 있다. 네트워크의 “가장자리”에서 복잡성이 발생한다. 전송계층 : UDP사용 (불필요한 데이터 최소화, 트래픽 감소) DNS 서비스, 구조 DNS 서비스 호스트 이름을 IP 주소로 변환 호스트 별칭 정식 이름과 별칭 이름(alias) 메일 서…

ComputerNetwork
March 21, 2023
이메일

Electronic mail 3개의 주 요소 : User agent Mail server Simple Mail Transfer Protocol : SMTP User agent 클라이언트: 클라이언트는 서버에게 서비스를 요청하는 컴퓨터나 디바이스를 의미한다. 클라이언트는 웹 브라우저, 웹 애플리케이션, 모바일 앱 등 다양한 형태로 존재할 수 있다. 사용자는 클라이언트를 통해 웹 서버에 요청을 보내고, 서버로부터 응답을 받아 화면에 웹 페이지를 렌더링하거나 서비스를 이용할 수 있다. 예를 들어, 사용자가 웹 브라우저를 통해 웹 페이지를 요청하면 웹 브라우저가 클라이언트 역할을 수행하여 요청을 서버에 전달하고, 서버로부터 받은 응답을 렌더링하여 사용자에게 보여준다. User Agent: User Agent는 HTTP 요청을 보내는 클라이언트의 소프트웨어나 애플리케이션을 식별하는 문자열 정보를 의미한다. 이 정보는 HTTP 헤더에 포함되어 서버에게 전달된다. User Agent는 클라이…

ComputerNetwork
March 16, 2023
웹 & HTTP

웹 & HTTP 웹 페이지는 객체(object)들로 이루어져 있다. 객체는 HTML 파일, JPEG 이미지, Java applet, 오디오 파일 등이 될 수 있다. 웹 페이지는 여러 개의 참조된 객체들을 포함하는 기본 HTML 파일로 구성된다. 각 객체는 URL(예: Uniform Resource Locator)을 통해 주소 지정이 가능하다. 도메인 이름(Domain Name)과 URL의 차이점이 있다. 웹 문서 HTML CSS HTML5 = HTML + CSS + Javascript SGML, XML HTML vs. XML 목적 및 사용범위: HTML은 웹 페이지의 구조와 내용을 표현하는 언어로 주로 웹 브라우저에서 사용된다. 반면에 XML은 데이터를 표현하고 전송하는 일반적인 마크업 언어로, 다양한 분야에서 사용될 수 있다. 태그와 문법: HTML은 미리 정의된 태그들로 이루어진 마크업 언어로, 태그에는 미리 정의된 의미와 스타일이 부여되어 있다. XML은 사용자가 직접 태그…

ComputerNetwork
March 14, 2023
네트워크 어플리케이션 원리

네트워크 어플리케이션 원리 네트워크 어플리케이션 e-mail ftp : file 공유 web text messaging (카톡) remote login P2P file sharing multi-user network games streaming stored video (YouTube, Hulu, Netflix : OTT(over-the-top)) Skype : voice over IP Zoom : real-time video conferencing social networking Searching engine TCP/IP Protocol Layers 네트워크 앱 만들기 다음과 같은 프로그램 작성: (다른) 엔드 시스템에서 실행 네트워크를 통해 통신 예: 웹 서버 소프트웨어가 브라우저 소프트웨어(클라이언트)와 통신함 네트워크 코어 장치용 소프트웨어를 작성할 필요가 없음 네트워크 코어 디바이스에서 사용자 애플리케이션을 실행하지 않음 엔드 시스템의 애플리케이션을 통해 신속한 애플리케이…

ComputerNetwork
March 14, 2023
인터넷의 역사

인터넷의 역사: 패킷 교환에서 현대 클라우드까지 1961-1972: 초기 패킷 교환 원리 1961년: Kleinrock이 큐잉 이론으로 패킷 교환의 효율성을 보임 1964년: Baran이 군사 네트워크에 패킷 교환을 적용 1967년: ARPAnet이 ARPA(Advanced Research Projects Agency)에 의해 고안됨 1969년: 최초의 ARPAnet 노드가 동작 1972년: ARPAnet 공개 데모, NCP(Network Control Protocol) 최초의 호스트 간 프로토콜, 최초의 이메일 프로그램, ARPAnet에 15개의 노드가 존재 1972-1980: 인터네트워킹, 새로운 독점 네트워크들 1970년: 하와이의 ALOHAnet 위성 네트워크 1974년: Cerf와 Kahn이 네트워크 상호연결을 위한 아키텍처를 제안 1976년: Xerox PARC의 Ethernet 1970년대 후반: 독점 아키텍처들인 DECnet, SNA, XNA가 등장 1970년대 후반…

ComputerNetwork
March 09, 2023
프로토콜

프로토콜 “계층” 네트워크는 많은 “요소”들로 구성되어 복잡함 : 호스트 라우터 다양한 매체의 링크 응용 프로토콜 하드웨어, 소프트웨어 💡 네트워크 구조를 조직화 하기 위해서는? 예 : 항공 여행의 조직화 분업, 조직화가 중요하다 계층화의 이유 복잡한 시스템을 다룰 때 : 명시적인 구조가 복잡한 시스템의 요소들의 식별과 관계를 분명하게 해 줌. 논의를 위한 계층화된 참조모델 모듈화로 시스템의 관리와 갱신이 용이해짐. 한 계층의 구현을 변경해도 시스템의 다른 부분에 영향을 주지 않음. ISO/OSI 참조 모델(Open Systems Interconnection Reference Model) 응용(Application) 계층: 사용자와 네트워크 간의 상호작용을 담당하며, 응용 프로토콜을 통해 다양한 네트워크 애플리케이션을 지원합니다. 표현(Presentation) 계층: 데이터의 형식을 변환하고 암호화, 압축, 인코딩 등의 기능을 제공하여 응용 계층이 전송할 데이터를 처리합니다. …

ComputerNetwork
March 09, 2023
지연, 손실, 처리율

네트워크에서의 지연, 손실, 처리율 손실과 지연은 어떻게 발생하는가? 라우터의 버터에 패킷들이 큐잉된다. 패킷 도착률 > 출력 링크 용량(대역폭)을 넘으면 큐잉 패킷들은 자기 차례를 기다림. 패킷 지연의 4가지 원인 d_{nodal}=d_{proc} + d_{queue} + d_{trans} + d_{prop} d_{proc} : nodal processing 에러 검사 출력 링크 결정 대개 msec이하 d_{queue} : queueing delay 출력 링크에서 전송을 기다리는 시간 라우터의 혼잡 정도에 따라 의존적 d_{trans} : transmission delay L : 패킷 길이(bits) R : 링크 대역폭(bps) d_{trans} = L/R d_{prop} : propagation delay d : 물리 링크의 길이 s : 전파 속도 (~2x10^8 m/s) d_{prop} = d/s 큐잉 지연 R : 링크 대역폭 (bps) L : 패킷 길이 (bits) a…

ComputerNetwork
March 09, 2023
네트워크 코어

네트워크 코어 상호 연결된 라우터들의 망 패킷교환(packet-switching):호스트는 데이터를 패킷으로 분할 출발지에서 목적지까지의 경로를 따라, 패킷들을 한 라우터에서 다음 라우터로 전송 각 패킷은 링크의 전체 용량을 사용해서 전송됨 : 대역폭을 최대한 사용해서 전송 패킷 교환 저장 후 전달(store-and-forward) 💡 라우터에서 패킷 전송 전에 저장하는 장소 : 큐, 메모리 L 비트 패킷을 R bps 링크에 전송하는데 걸리는 시간 : L/R 초 저장 후 전달 : 각 패킷은 라우터에 완전히 도달해야 다음 라우터로 전송 가능. 종단지연시간 : 2L/R 큐잉 지연, 손실 링크로의 도착률 > 링크의 전송률 이면, 라우터의 큐에 데이터가 쌓임 메모리가 넘치면 데이터(패킷)는 손실될 수 있다. 네트워크 코어의 두가지 핵심 기술 라우터는 패킷의 헤더에 있는 IP정보(네트워크 id / 스위치는 호스트 id)가 필요함. IP주소 : 176.165.1.1 , 176.165 =…

ComputerNetwork
March 07, 2023
컴퓨터 네트워크와 인터넷

인터넷이란? Internet vs. intranet inter + network intra + network nuts & bolts 관점 호스트 = 종단시스템 모든 서버는 호스트이지만 모든 호스트가 서버인 것은 아니다. 네트워크에 연결이 확립된 모든 장치는 호스트의 자격이 있는 반면, 다른 장치(클라이언트)로부터의 연결을 수락하는 호스트만 서버가 될 수 있다. 전송률 : 대역폭(bandwidth) 네트워크를 도로로 비유하면, 대역폭은 도로의 넓이, 넓으면 넓을수록 많은 데이터를 보낼 수 있다. 호스트끼리의 데이터 교환시 데이터의 단위(패킷), 패킷의 크기는 동일하다. 라우터 & 스위치 스위치 : 동일한 네트워크의 호스트간 데이터 교환을 도와주는 장치 (주로LAN) 라우터 : 서로 다른 네트워크 간 데이터 교환을 도와주는 장치 (주로WAN) 인터넷 네트워크들의 네트워크 상호 연결된 ISPs(Internet Service Providers : KT, LG U+, …) 프로토콜 통신 프…