본문 바로가기

COMPUTER SCIENCE/Network19

[Network] Application Layer - Socket Programming Socket 일반적인 network application 은 client prorgram 과 server program 의 쌍으로 구성된다. client program 과 server program 이 실행되면, client process 와 server process 가 생성되고 process 간 communication 을 위해 socket 을 사용한다. socket 은 application layer 와 transport layer 사이에 존재한다. 프로그래머는 TCP/UDP 헤더를 어떻게 만들어야 하는지, 구조가 어떻게 되는지 등의 고민 없이 socket API 를 사용하여 network application 을 만들 수 있다. Socket Programming with UDP 다음은 UDP 의 .. 2022. 11. 28.
[Network] Application Layer - DNS Internet host 는 hostname 을 사용하여 host 를 식별한다. hostname 의 예로 'www.google.com', 'www.naver.com' 등이 있다. hostname 은 가변 길이의 알파벳으로 이루어진 인간이 사용하는 표현이므로 router 가 처리하기에는 어려움이 있어 IP address 를 사용하여 host 를 식별할 수 있다. IP address 는 32bit 고정 길이의 주소로 엄격한 계층 구조를 가진다. Services Provided by DNS 우리는 인간이 사용하는 hostname 을 router 가 사용할 수 있게 IP address 로 바꾸어 주는 service 가 필요하고, 이러한 일을 하는 system 을 Domain Name System(DNS) 라고 .. 2022. 11. 23.
[Network] Application Layer - Electronic Mail Electronic mail 에는 세가지 주요 구성요소가 있다 : user agents, mail servers and Simple Mail Transfer Protocol(SMTP). User Agent 는 mail reader 라고도 부르며, user 가 mail message 를 쓰고, 읽고 보내는 등의 역할을 할 수 있게 한다. mail server 로 mail 을 보내거나 mail server 에서 mail 을 가져올 수 있다. user agent 의 종류로 Microsoft Outlook 과 Apple Mail 등이 있다. Mail Server 는 e-mail infrastructure 의 core이다. mail server 에는 mail box 와 message queue 가 있다. mail.. 2022. 11. 21.
[Network] Application Layer - Web and HTTP Web page 는 HTML file, JPEG image, Java applet 같은 objects 로 구성되어 있다. 대부분의 web page 는 몇몇 referenced objects 를 포함하는 base HTML file 로 이루어져 있다. objects 는 URL 에 의해 다루어진다. URL 의 예로 'https://www.someschool.edu/someDept/pic.gif:80' 를 볼 수 있다. 'https://' 는 프로토콜(ex. ftp://, telnet:// ...), 'www.someschool.edu'는 hostname, '/someDept/pic.gif' 는 path name, 80 은 port number 를 뜻한다. HTTP HTTP(Hypertext Transfer P.. 2022. 11. 15.
[Network] Application Layer - Principle of Network Applications networkd application 을 개발을 위해서는 network 를 통해 서로 의사소통하고 서로 다른 end system 에서 작동하는 프로그램을 만들어야 한다. network 의 layering 으로 인해 우리는 network core device 를 작동시키는 소프트웨어를 만들 필요가 없고, network core device 는 user application 을 사용할 수 없다. Network Application Architecture application architecture 에는 Client-Server architecture 와 P2P architecture 가 있다. Client-Server architecture 는 다음과 같은 특징들을 가진다. server 는 always-on.. 2022. 11. 8.
[Network] Protocol Layers 복잡한 시스템을 다루기 위해 network 를 layering 했다. Protocol layering 로 인해 복잡한 시스템의 관계를 확인할 수 있게 되었고 유지보수가 쉬워졌다. OSI 7 Layer 이름 전송 기본 단위 실제 프로토콜의 예 7 Layer Application Layer message, information, data HTTP, FTP, SMTP 6 Layer Presentation Layer zip, mp4, jpg, avi 5 Layer Session Layer 4 Layer Transport Layer segment TCP, UDP 3 Layer Network Layer packet, datagram IP, RIP, OSPF 2 Layer DataLink Layer frame 802.. 2022. 11. 6.
[Network] Components of a Computer Network 네트워크는 크게 network edge, access network, network core 로 구성되어 있다. Network Edge application 이나 end system 을 network edge 라고 한다. Access Network end system 을 edge router(first router) 에 물리적으로 연결하는 네트워크를 access network 라고 한다. residential access network, institutional access network, mobile access network 등이 있다. wired, wireless communication links 가 access networks 를 구성하는 데 사용된다 .또한, 이러한 commnunication .. 2022. 11. 6.
[Network] What is the Internet? Nuts-and-Bolts view 인터넷은 전 세계의 수십억의 computing devices 로 연결된 computer network 이다. 크게 host, communication links, packet swtiches 로 구성되어있다. host(end system) 인터넷에 연결되어 있는 computing device 를 host(end system) 이라고 한다. host 로 PC, server, smartphone, laptop 등이 있다. host 는 communication links 와 packet swtiches 의 네트워크로 인해 연결되어있다. end system 는 ISPs(Internet Service Providers)를 통해 인터넷에 접근한다. communication lin.. 2022. 11. 5.
[Network] CORS란? spring boot와 vue.js 를 사용한 게시판 만들기 토이 프로젝트를 진행하던 중, CORS 이슈를 확인했다. CORS 에 대한 개념이 전무하여 공부를 한 후 정리했다. 교차 출처 리소스 공유(Cross-Origin Resource Sharing, CORS) 교차 출처 리소스 공유(Cross-Origin Resource Sharing)는 추가 HTTP 헤더를 사용하여, 한 출처에서 실행 중인 웹 애플리케이션이 다른 출처의 선택한 자원에 접근할 수 있는 권한을 부여하도록 브라우저에 알려주는 체제이다. 보안 상의 이유로, 브라우저는 스크립트에서 시작한 교차 출처 HTTP 요청들을 제한한다. 동일 출처 정책(Same-Origin Policy)을 따르는 API(XMLHttpRequest, FetchAPI.. 2022. 7. 31.