2020년 9월 22일 화요일

Computer Networking 정리 - 5,4 Layer

 


Application Layer

    개괄

        End to End Systems 끼리, 그리고 Application Layer 에서만 가능함

        그러니까 Network Core 에 대한걸 Application 코더가 짤 필요도 그럴수도 없음

        Interprocess Comunication (같은 Host 내의 Process 끼리)  가 아닌 다른 호스트

    Architecture

        Client-Server Architecture

            Client 끼리 소통하려면 서버를 꼭 거쳐야함

            Server 는 고정되고 잘 알려진 주소인 IP 주소를 가지고 대개 항상 켜져있음

            서버 혼자 감당이 빡세면 Data Center 를 두는 경우도 있음

        P2P(Peer-to-Peer) Architecture

            항상 켜지고 고정된 위치의 서버가 필요없고, Client 끼리 직접 소통함

            pairs of Intermittently Connected Host  = peers. 

            Self Scalability - Service Capacity 도 늘려주면서 Service Demands 도 함.

            peer 은 IP도 막 바꾸고, 보안도 약하고, 구현도 어렵지만 쌈.

            파일공유, 다운로드 속도상승 프로그램, 화상통화/전화(스카이프) 

            메시지는 P2P로 IP Tracking 은 Client-Server 로 하는 Hybrid 도 많음

    Process Communicating

        Host

            Server - process that waits to be contacted to begin the session

            Client - process that initiates the communication

            IP Address, Port Number(Process or Socket 인지용) 를 알아야 연결 가능

        Socket 

            Interface between Application and Transport Layer in OS.

            그래서 둘 레이어 상의 API 라고 부를 수도 있음

            그 레이어에선 Transport Control, Transport Layer Parameters 만 제어가능

        Protocol

            구성

                Type of messages Exchange(request, response)

                Message Syntax / Semantics, 

                Rules(언제, 어떻게 보내고 받냐)

            분류 

                Open Protocol(RFCs ...), Private Protocol(Skype)

            종류

                HTTP (HyperText Transfer Protocol)

                    [RFC 1945], [RFC 2616] 에 있음

                    WebPages

                        consists of Objectes (Base HTML + Images ...)

                        Objects referenced and addressable by URLs.

                    URLs

                        Hostname of the server + Object's path name

                        URI (Uniform Resource Identifier) 의 종류 vs URN

                        URL 은 위치이고 URN 은 파일의 고유한 이름. Extension 까지 포함.

                    TCP 를 사용함

                        Client initiating TCP Connection( Socket ) to Server; port 80

                        => Server accepts TCP Connection from Client

                        => HTTP Messages Exchange => TCP Connection Closed

                    Stateless 

                        따로 Client 를 메모리에 저장안함     

                        저장하면 Client 랑 Server 랑 동기화 안되면 서로 보이는게 달라서 복잡

                        

Transport Layer

    Services

        특성

            Reliable Data Transfer ( Data Integrity, Data Loss )

                Overflow buffer in router(Packet Loss) or bits corrupted 의 경우에도 안정성

            Throughput

                Host 의 Process 끼리 Bandwidth 는 공유됨에도 r bits/sec 을 보장해줌. 

                bandwidth-sensitive applications(전화) 에서 필수

            Timing - Delay 좀 줄여라

            Security - 암호화, End-Point Authentication

        종류

            TCP

                적용되는것

                    Connection-Oriented Service

                        Handshaking procedure -> TCP Connection -> messages flow

                        Full-duplex Connection - 양쪽 다 메시지를 동시에 보낼 수 있음

                    Reliable Data Transfer

                        Without Error, In Proper Order

                    Flow Control - 보낸이  몰빵해서 보내서 받는이가 압도안당하게함

                    Congestion Control - 보낸이의 네트워크가 혼잡해도 보낼 수 있음

                    안하는거

                        Timing, Minimum Throughput Guarantee, Security

            UDP

                되는게 없고 가벼움. 그래서 멀티미디어나 인터넷 전화에서만 쓰임.

                방화벽이 보통 막는 경우가 많아서 인터넷전화도 안쓰는 경우가 가끔. 

            SSL (Secure Sockets Layer)

                TCP Enhanced 버전, UDP, TCP 처럼 별도의 Socket API 를 쓰면 적용됨.

List