Abstract:
The present invention relates to a method of blocking undesired traffic in data communication systems that uses packet switching. Blocking is effected by determining the sender address of incoming data packets, and then comparing this address with a list of reliable addresses. The data packet is erased immediately, if the sender addresss is not included in the list. The list of accepted addresses can be created in several wayoi among others by including in the list addresses to which the user has himself sent data, these addresses therefore being considered reliable addresses. Addresses of friends and acquaintances can also be inserted in the list manually. The invetion thus enables undesired data from unreliable senders to be avoided. Such data loading limited resources, such as wireless internet connections for example. Neither is there any risk of the receiver being required to pay for information that he himself has not requested.

Description:
FIELD OF INVENTION  
         [0001]    The present invention relates to the field of data communications systems. More specifically, the invention relates to a method of blocking undesired traffic in a data communications system.  
           [0002]    The invention relates particularly, but not exclusively, to a method of blocking undesired data packets that are sent on a network which uses packet switching and where the network protocol is preferably represented by Internet Protocol (IP).  
           [0003]    The invention can be applied on both wireless communications systems, for instance GPRS and WCDMA, and traditional so-called fixed communications systems constructed by fibre cables for instance.  
         DESCRIPTION OF THE BACKGROUND ART  
         [0004]    In a packet-switching data communications system information is sent in packets, wherein each packet travels over the network with the best of efforts with respect to speed and routing, as opposed to a circuit switched network in which a connection is set up and all information sent precisely in accordance with the pre-established route.  
           [0005]    In packet switching networks, the data packet utilises addresses in order to reach its final destination, in other words each packet is marked with a terminal address and the packets then dispatched. The network then ensures that the packets arrive at the correct receiver. Each packet will normally also include a sender address, so that the sender of the packet will be known.  
           [0006]    Thus, information can be sent in a packet switched network at any time whatsoever and to all nodes that are connected to the network, without first contacting the receiver.  
           [0007]    It is known, for instance from PCT-application WO9826533, to filter data packets by to data packets an attribute which indicates whether the receipt of the packets is desired or undesired. This attribute may be the address of the sender of the packet.  
         SUMMARY OF THE INVENTION  
         [0008]    One problem with packet switching network is that whosoever can send whatsoever to whomsoever. The data packet is forwarded in the network without first checking whether or not the receiver will actually have the information. This does not occur in circuits switched communications systems in which there is first set up a connection between two parties. This can result in a user being drowned in a large quantity of undesired data that loads a resource-limited system unnecessarily.  
           [0009]    When payment is expected for the amount of data received, another problem is that whosoever can cause an economic injury by sending the data packet to a user who is then forced to pay for the receipt of undesired and worthless information.  
           [0010]    Thus, the object of the present invention is to provide a solution to the aforesaid problems. In brief, this object is realised by believing that each terminal address to which data is sent, for example an e-mail receiver or in response to a request on a web page, is considered to be reliable. Data is then accepted solely from these accepted addresses, i.e. from reliable senders, and all other data packets are discarded.  
           [0011]    More specifically, the checking and filtering of data packets is normally effected automatically. A list of accepted senders is created automatically, by investigating the terminal address of outgoing packets and placing this address in the list. A user may also insert beforehand addresses from which he is willing to receive data packets. The sender address of respective incoming packets is then compared with the addresses on the list. The invention can be applied in any network node whatsoever.  
           [0012]    One advantage afforded by the invention is that one avoids receiving undesired data from unknown or unreliable senders.  
           [0013]    Another advantage is that there is no risk of being required to pay for information that has not been requested.  
           [0014]    The invention will now be described in more detail with reference to preferred exemplifying embodiments thereof and also with reference to the accompanying drawings. 
       
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0015]    [0015]FIG. 1 shows parts of a packet switching network.  
         [0016]    [0016]FIG. 2 illustrates the various link layers in the OSI-model.  
         [0017]    [0017]FIG. 3 shows an IP-header for IP-version 4.  
         [0018]    [0018]FIG. 4 shows a TCP-header.  
         [0019]    [0019]FIG. 5 illustrates how the three-way handshake algorithm functions.  
         [0020]    [0020]FIG. 6 is a flow chart for outgoing packets according to one embodiment of the invention.  
         [0021]    [0021]FIG. 7 is a flow chart for incoming packets according to one embodiment of the invention. 
     
    
     DESCRIPTION OF PREFERRED EMBODIMENTS  
       [0022]    [0022]FIG. 1 shows the possible configuration of parts of a packet switching network. The example shows how several nodes (N 1 , N 2 , N 3  . . . ) are interlinked in one or more networks. For example, the nodes N 1 -N 3  and N 5 -N 7  may form two separate small networks which, in turn, are coupled together with a larger network, for instance with Internet. Each small network can use different types of technology, for example FDDI, Ethernet or ATM. In FIG. 2, the nodes N 1 -N 3  might be able to use ATM within their small network, whereas the nodes N 5 -N 7  might be able to use Ethernet within their small network.  
         [0023]    When these smaller data networks are coupled together, there is created a larger data network. Thus, Internet is actually a logic network that consists of a collection of physical networks, i.e. a collection of smaller networks that use different technologies.  
         [0024]    These smaller networks are coupled together with the aid of routers and gateways. A router ensures that data packets are sent along correct routes between the networks, whereas a gateway manages the communication between different types of protocols, for instance so that an ATM-network is able to communicate with an Ethernet-network.  
         [0025]    The OSI-model shown in FIG. 2 describes the various layers that are included in a packet switching communications system. The bottom Layer  1  is the physical layer that specifies transportation of bits over the physical medium. V.24, V.34 and G.703 are examples of Layer  1  standards.  
         [0026]    There then follows Layer  2  which is the data link layer that specifies frames and physical addresses. Ethernet, Token Ring and High level Data Link Control (HDLC) are examples of Layer  2  standards. Layer  3  is the network layer that manages routing, logic addresses and data packet fragmentation. Internet Protocol (IP) and Inter-network Packet Exchange (IPX) are possible examples in this regard.  
         [0027]    These three lowermost Layers  1 - 3  are, as shown in FIG. 2, implemented in all network nodes, including network switches and all nodes coupled along said networks.  
         [0028]    Layer  4  is the transport layer that is normally implemented solely in the end nodes. User Datagram Protocol (UDP) and Transmission Control Protocol (TCP) are examples of protocols in the transport layer.  
         [0029]    Layer  5  is the sessions layer that, inter alia, checks that the session has not been terminated before all data has been transmitted. Examples in this regard may be netbios and winsock.  
         [0030]    Layer  6  is the presentation layer that specifies coding of data. HyperText Marup Language (HTML) and American Standard Code for Information Interchange (ASCII) are examples in this regard.  
         [0031]    The top Layer  7  is where the actual applications are implemented, such as e-mail and file transfers. Examples in this regard are telnet, File Transfer Protocol (FTP), Simple Mail Transfer Protocol (SMPT) and HyperText Transport Protocol (HTTP).  
         [0032]    [0032]FIG. 3 illustrates the construction of an IP-header for IP-version 4. An Ipv4 header consists of several 32-bit words. The first word includes Version which indicates the version of IP used. Hlen indicates the length of the entire header. TOS (Type Of Service) is conceived for use for extra services, for instance giving priority to faster transportation.  
         [0033]    The field Protocol concerns which higher-layer protocol manages the IP-packet, examples of such protocol being TCP or UDP. This field is thus examined to see whether or not TCP was used, and therewith also examined to see whether or not SYN and ACK were sent, as is carried out in one embodiment of the invention.  
         [0034]    A checksum is a sum that is calculated by discerning the whole of the IP-header as a number of mutually summated 16-bit words. If this field does not agree with the computation carried out upon arrival of the packet, the packet is discarded.  
         [0035]    The SourceAddress reveals the address from which the packet is sent, i.e. the origin of the packet, this being required in order to be able to reply to a message. The address of origin may, for instance, be an IP-address, such as 130.240.193.75.  
         [0036]    The DestinationAddress reveals the address to which the packet shall be sent, in other words the terminal address. This address is used by each router in making a decision and determining the route along which the packet shall be forwarded in the network. The receiver address may, for instance, be an IP-address, such as 136.225.151.252. When IP is used in conjunction with the invention, it is this field together with the aforesaid source address field that is used to ascertain whether or not the data packet shall be accepted.  
         [0037]    Although options is not normally used, it can, however, be used to indicate a particular route through the network, and Data is the actual payload data that may consist of the subject matter to the dispatch, for instance, text, pictures or speech.  
         [0038]    [0038]FIG. 4 shows the construction of a TCP-header. The TCP-header also consists of several 32-bit words. The first field SrcPort indicates the port that was used in the node from which the packet was sent. DstPort denotes the corresponding port in the node to which the packet shall be sent. Because TCP is a byte-orientated protocol, each byte of data will have a sequence number, which is given by SeqNo. Acknowledgement indicates which sequence is next in line, i.e. the sequence number accepted next by the receiver. HdrL denotes the length of the header.  
         [0039]    In the field Flags, which consists of 6 bits, the content of the packet is disclosed in slightly more detail, where the bit order is as follows: URG-ACK-PUSH-RESET-SYN-FIN, wherewith each bit has the following connotation:  
         [0040]    URG which is a flag for urgent data conceived for use in signalling important messages concerning traffic;  
         [0041]    The ACK-bit (010000 in Flags), which is the flag that states whether or not valid information is found in the Acknowledgement field;  
         [0042]    PUSH, which is used when wishing to send collected data directly, without waiting to fill a complete packet, PUSH being used for instance, in telnet where each written character is sent directly;  
         [0043]    RESET which indicates that the receiver of data has obtained erroneous information, for instance an unexpected segment with the wrong sequence number or the wrong Checksum, and therewith wishes to terminate the connection;  
         [0044]    SYN-bit (000010 in Flags), which are used when establishing a TCP-connection; and  
         [0045]    FIN, which is used when a connection shall be terminated.  
         [0046]    AdvWindow indicates the size of the transmission window used, i.e. how much data is sent before a receiving acknowledgement can be expected. Checksum is a sum that is calculated by summating the contents of the header, so as to ascertain whether or not this content is in agreement with the received content. UrgPtr indicates the number of bytes of urgent data (if URG is placed in Flags). TCP-choice can be specified in options, and the Data-field is the payload data sent.  
         [0047]    [0047]FIG. 5 is a schematic image of the so-called three way handshake algorithm used by TCP for establishing a connection. The client commences by sending to the server a segment, (Flags=SYN, SeqNo=x) that indicates which sequence number the client intends to use. The server then responds with an acknowlegement (Flags=ACK, SeqNo=y) of the client&#39;s sequence number and an own sequence number (Flags=SYN, Ack=x+1) that the server intends to use. Finally, the client responds with a third segment (ACK, Ack=y+1) that confirms the server&#39;s sequence number.  
         [0048]    This algorithm is used between all end nodes that send data therebetween, regardless of whether it involves two clients, two servers, or one server and one client. Although the handshaking algorithm shown by way of example is for TCP, it will be understood that other handshake algorithms may alternatively be used in accordance with the invention, for instance a WAP handshake algorithm.  
         [0049]    According to one embodiment of the invention, only SYN/ACK is studied in order to ascertain whether or not packets arriving from this session will be accepted. This reduces the number of outgoing packets that need to be checked. All that is required is to look when a connection is established, therewith obviating the need to check outgoing packets in said session.? 
         [0050]    FIGS.  1 - 5  now give a background that leads to the invention itself, i.e. how data packets are filtered. This is described below chiefly with reference to FIGS. 6 and 7.  
         [0051]    [0051]FIG. 6 is a flow chart for outgoing data packets in one embodiment of the invention. The first step  201  involves ascertaining whether or not data packets are affiliated with a handshake protocol. The second step  202  involves ascertaining whether or not an outgoing data packet belongs to a handshake procedure, which when TCP is used is shown, for instance, in the abovementioned field Flags, where SYN and/or ACK may be given. These two steps can be carried out within the concept of the invention to reduce the number of outgoing data packets that shall be examined.  
         [0052]    The third step  203  involves examining the destination address of the data packet, which, when Internet Protocol (IP) is used, can be found in the DestinationAddress of the IP-header, which states the address to which each data packet shall be sent.  
         [0053]    The next step  204  involves finding the destination address of the outgoing data packet in the list of accepted addresses.  
         [0054]    Step  205  is implemented when the response in the preceding step  204  is NEGATIVE, meaning that the address is not included in the list. The user is then asked whether or not the destination address of the outgoing data packet shall be included in the list.  
         [0055]    Step  206  involves including the address in the list, if the user answers YES to the question.  
         [0056]    Step  207  involves releasing the packet for transportation out in the network. This step can follow step  204 ,  205  or  206 , depending on the answers given to the afore said questions and the result of the list scan, or whether or not automatic updating of the list shall be used instead of asking a question of the user in this regard.  
         [0057]    [0057]FIG. 7 is a flow chart for incoming data packets in one embodiment of the invention. The first step  100  involves examining the address of origin of the data packet. This can be seen, for instance, in the SourceAddress field of the IP-header when using Internet Protocol.  
         [0058]    The next step  101  involves looking for the address in the list of accepted addresses.  
         [0059]    Step  102  is carried out when the address cannot be found in the preceding step  101 , meaning that the sender is unknown/not accepted.  
         [0060]    The user is then asked whether or not he is willing to receive the data packet nevertheless.  
         [0061]    Step  103  is carried out when the user states in the preceding step  102  that he does not wish to receive the packet. The packet will then be erased. Alternatively, this step is carried out immediately after step  101  when the address cannot be found and the user does not wish to ask this question for each unknown sender.  
         [0062]    Step  104 , which means that receipt of the packet in the node is avoided, may take place after several steps ( 101  or  102 ), depending on whether or not the address is found in the list or depending on the answer given to said question.  
         [0063]    The list of accepted addresses of origin might include both addresses statically inserted in the list and addresses that are generated automatically. This enables a user to create the list beforehand or to update the list with accepted addresses of origin. Alternatively, the list can be created or updated automatically by including the addresses to which data packets are sent automatically in the list, in accordance with the invention.  
         [0064]    The person applying the invention may, for instance, be a person who uses a wireless connection to the Internet, via node N 4  in FIG. 1. The user then sends an email to a user connected via node N 6  in FIG. 1, and requests home a number of web pages from Node N 3 . The user then considers the addresses of nodes N 6  and N 3  to be reliable. If a file is sent from a person who does not have one of the aforesaid addresses of origin, the file is erased before our person receives the file on his computer. Thus, in the case of this example, the invention can be implemented in a node upstream of our user, for instance in the penultimate node—which may be the base station—prior to the file being sent to our user in a wireless node. This is done in order to save space on the limited bandwidth in the air interface.  
         [0065]    It will be understood that the invention is not restricted to the aforedescribed and illustrated exemplifying embodiments thereof and that modifications can be made within the scope of the accompanying claim.