Computer Science/Network 8

[Network] Transport Layer - TCP: Connection-oriented transport

한양대학교 - 컴퓨터네트워크 수업을 듣고 정리한 내용입니다. 1. TCP Segment Structure TCP Segment Structure는 Header와 data 로 구분되고 header에 있는 각 필드의 의미를 아는 것이 중요하다. 몇 가지는 앞서 Reliable Data Transfer을 공부할 때 나온 개념인데 이렇게 header에 담겨져가는 것을 보니 좀 더 이해에 도움이 된다. 1) sequence number, ACK sequence number is byte stream "number" of first byte in segment's data. ACKs(TCP uses cumulative ACK) is sequence number of next byte expectred from ot..

[Network] Transport Layer - Reliable Data Transfer(신뢰성 있는 데이터 전송; RDT)의 통신 원리, Pipelined protocols

한양대학교 - 컴퓨터네트워크 수업을 듣고 정리한 내용입니다. 1. Reliable Data Transfer란 Reliable Data Transfer(신뢰성 있는 데이터 전송; RDT)이란 application layer에서 transport layer로 전달 된 데이터가 유실 없이 상대 application layer로 전달하는 것. 하지만 unreliable 한 상황은 언제든 발생할 수 있다. What can happen over unreliable channel? 1. Message error 2. Message loss unreliable한 상황에는 이 2가지가 있다. 다시말해 이 두가지 사항만 잘 handling하면, reliable한 channel을 만들 수 있다는 것! 그래서 TCP에서 제공..

[Network] Socket Programming

한양대학교 - 컴퓨터네트워크 수업을 듣고 정리한 내용입니다. 1. Socket이란 client process와 server process간의 통신이 application program이라면 개발자나 사용자 입장에선 OS내부를 건들이는건 아니다. 그냥 OS에서 제공하는 API를 사용할 뿐! 이처럼 process와 process간 통신에서 사용하는 API를 socket이라고 한다. 그리고 이 API는 OS에서 제공해주는 것이기 때문에 제공해주는 것들 '만' 사용할 수 있다. 2. Socket Type (protocol) 다른 관점에서 생각해보면, OS에는 application layer 아래의 layer들, 즉 transport layer부터 쭉 구현되어 있다. application layer 에서는 이 t..

[Network] 네트워크 계층과 네트워크 간의 연결

모두의 네트워크 를 읽고 정리한 내용입니다. 다른 네트워크에 있는 목적지로 데이터를 연결하기 위해서는 네트워크 계층의 기술이 필요 데이터 링크 계층에서는 이더넷 규칙을 기반으로 같은 네트워크에 있는 컴퓨터로는 데이터를 전송할 수 있지만, 다른 네트워크 간의 통신을 가능하게 하기 위해선는 네트워크 계층이 필요. 1. IP 1) IP 헤더 네트워크 계층에는 IP(Internet Protocol) 프로토콜이 있다. 네트워크 계층에서 캡슐화를 할 때 아래 그림과 같은 IP 헤더를 붙이고, 이렇게 데이터에 IP 헤더가 추가된 것을 IP 패킷이라고 한다. 여기에 Source IP address(출발지 IP 주소), Destination IP address(도착지 IP 주소)가 있다. 이 외의 정보들은 [TCP/IP..

[Network] Forward proxy vs Reverse proxy

Proxy, Proxy 프로그램, Proxy 서버 Proxy는 자신을 '통해서' 다른 네트워크에 간접적으로 접속 할 수 있도록 '중계'해주는 컴퓨터 혹은 프로그램이다. 그리고 이러한 일을 하는 프로그램을 Proxy 프로그램이라 하며, Proxy 프로그램은 Proxy Server에서 작동한다. Proxy의 종류 Proxy에는 Forward Proxy와 Reverse Proxy가 있다. 1) Forward Proxy 일반적으로 사용하는 Proxy방식이며 클라이언트와 애플리케이션 서버 사이에 위치해서 클라이언트가 애플리케이션 서버로 서비스를 요청 할 때 내부망(아래 사진에서 남색으로 표시)에 위치한 Proxy Server에서 먼저 요청을 받고, Proxy Server가 타겟인 애플리케이션 서버로 요청을 전달한..

[Network] CDN(Contents Delivery Network) 이해하기

[CloudFront] CloudFront에 S3 버킷 배포하고 SSL Certificate설정에서 Amazon S3와 CloudFront로 정적 파일을 배포하는 과정에 대해서 정리하였었다. AWS CloudFront는 전 세계의 정적/동적 웹 콘텐츠, 비디오 스트림 및 API를 안전하게 대규모로 전송할 수 있는 콘텐츠 전송 네트워크(CDN) 서비스이라서, 이를 사용하기 위해서는 CDN과 Cache에 대한 개념을 알아야하고, 이 부분에 대해서 공부가 더 필요하기 때문에 공부 후에 따로 정리해보겠다 라고도 적어놓은 바가 있다. 이 중 CDN에 대해 공부하고 이해한 바를 정리해본다. 내가 만든 서비스를 호스팅해주는 서버는 한국에 있고, 내 서비스가 전세계적으로 제공되고 있다고 하자. 이 때 많은 양의 파일과..

[Network] DNS(Domain Name System) 이해하기

IP에 대한 것은 (아직 부족하지만) [Network]Router, IP, NAT, Port에 정리해 둔 적이 있다. 즉 IP는 두 대의 컴퓨터 각자의 '주소'를 통해 서로를 찾고 인터넷을 통해 '통신'을 하며 정보를 주고 받는다고 하자. 이때 '주소'에 해당하는게IP address. 그리고 host는 인터넷에 연결된 각각의 기기를 말한다. 그런데 어떤 컴퓨터에 통신을 위해 요청을 보낸다고 하자. 이때 IP가 뭔지 기억하기란? 굉장히 번거롭다. 93.184.216.34 이런걸 다 외운다고? 그럴 순 없지 그래서 필요한 것이 DNS(Domain Name System)이다. DNS는 우리가 흔히 보는 도메인 이름(예를 들어 www.google.com과 같은)을 IP주소로 변환하는 역할을 한다. DNS의 원리..

[Network] 네트워크 기본 용어

AWS 배포를 하면서 가장 많이 드는 생각은 '네트워크 공부 좀 해야겠다..' 였다. 이제는 원리를 파악하고 깊이 고민해야하는 단계인 것 같다. 천천히 해보자 1. 가정에서 하는 랜 구성을 통해 살펴보는 Router, IP 두 대의 컴퓨터가 인터넷을 통해 '통신'을 하며 정보를 주고 받는다고 하자. 이때 '주소'에 해당하는게 IP address. 인터넷 사용은 1. 통신사와 계약해서 회선을 받는다. 2. 이 회선을 꼽는 순간 ip가 부여된다. 그런데 그 회선을 하나의 노트북에'만' 꼽는건.. 요즘 별로 없을 것이다,. 왜 ? 스마트폰, 노트북 2~3대 모두 인터넷을 사용하고 싶으니까! 그럼 인터넷을 사용하려면? Ip address가 필요하다고 앞서 간단히 살펴보았다. 그럼 인터넷 회선을 2~3개 또 계약..